changeset 11128:5bfb3f92b613

Regenerated for Unicode 5.1.0.
author Bruno Haible <bruno@clisp.org>
date Sun, 08 Feb 2009 16:13:39 +0100
parents edaef4685b82
children 9770bdf2c98e
files lib/unictype/bidi_of.h lib/unictype/blocks.h lib/unictype/categ_C.h lib/unictype/categ_Cc.h lib/unictype/categ_Cf.h lib/unictype/categ_Cn.h lib/unictype/categ_Co.h lib/unictype/categ_Cs.h lib/unictype/categ_L.h lib/unictype/categ_Ll.h lib/unictype/categ_Lm.h lib/unictype/categ_Lo.h lib/unictype/categ_Lt.h lib/unictype/categ_Lu.h lib/unictype/categ_M.h lib/unictype/categ_Mc.h lib/unictype/categ_Me.h lib/unictype/categ_Mn.h lib/unictype/categ_N.h lib/unictype/categ_Nd.h lib/unictype/categ_Nl.h lib/unictype/categ_No.h lib/unictype/categ_P.h lib/unictype/categ_Pc.h lib/unictype/categ_Pd.h lib/unictype/categ_Pe.h lib/unictype/categ_Pf.h lib/unictype/categ_Pi.h lib/unictype/categ_Po.h lib/unictype/categ_Ps.h lib/unictype/categ_S.h lib/unictype/categ_Sc.h lib/unictype/categ_Sk.h lib/unictype/categ_Sm.h lib/unictype/categ_So.h lib/unictype/categ_Z.h lib/unictype/categ_Zl.h lib/unictype/categ_Zp.h lib/unictype/categ_Zs.h lib/unictype/categ_of.h lib/unictype/combining.h lib/unictype/ctype_alnum.h lib/unictype/ctype_alpha.h lib/unictype/ctype_blank.h lib/unictype/ctype_cntrl.h lib/unictype/ctype_digit.h lib/unictype/ctype_graph.h lib/unictype/ctype_lower.h lib/unictype/ctype_print.h lib/unictype/ctype_punct.h lib/unictype/ctype_space.h lib/unictype/ctype_upper.h lib/unictype/ctype_xdigit.h lib/unictype/decdigit.h lib/unictype/digit.h lib/unictype/mirror.h lib/unictype/numeric.h lib/unictype/pr_alphabetic.h lib/unictype/pr_ascii_hex_digit.h lib/unictype/pr_bidi_arabic_digit.h lib/unictype/pr_bidi_arabic_right_to_left.h lib/unictype/pr_bidi_block_separator.h lib/unictype/pr_bidi_boundary_neutral.h lib/unictype/pr_bidi_common_separator.h lib/unictype/pr_bidi_control.h lib/unictype/pr_bidi_embedding_or_override.h lib/unictype/pr_bidi_eur_num_separator.h lib/unictype/pr_bidi_eur_num_terminator.h lib/unictype/pr_bidi_european_digit.h lib/unictype/pr_bidi_hebrew_right_to_left.h lib/unictype/pr_bidi_left_to_right.h lib/unictype/pr_bidi_non_spacing_mark.h lib/unictype/pr_bidi_other_neutral.h lib/unictype/pr_bidi_pdf.h lib/unictype/pr_bidi_segment_separator.h lib/unictype/pr_bidi_whitespace.h lib/unictype/pr_combining.h lib/unictype/pr_composite.h lib/unictype/pr_currency_symbol.h lib/unictype/pr_dash.h lib/unictype/pr_decimal_digit.h lib/unictype/pr_default_ignorable_code_point.h lib/unictype/pr_deprecated.h lib/unictype/pr_diacritic.h lib/unictype/pr_extender.h lib/unictype/pr_format_control.h lib/unictype/pr_grapheme_base.h lib/unictype/pr_grapheme_extend.h lib/unictype/pr_grapheme_link.h lib/unictype/pr_hex_digit.h lib/unictype/pr_hyphen.h lib/unictype/pr_id_continue.h lib/unictype/pr_id_start.h lib/unictype/pr_ideographic.h lib/unictype/pr_ids_binary_operator.h lib/unictype/pr_ids_trinary_operator.h lib/unictype/pr_ignorable_control.h lib/unictype/pr_iso_control.h lib/unictype/pr_join_control.h lib/unictype/pr_left_of_pair.h lib/unictype/pr_line_separator.h lib/unictype/pr_logical_order_exception.h lib/unictype/pr_lowercase.h lib/unictype/pr_math.h lib/unictype/pr_non_break.h lib/unictype/pr_not_a_character.h lib/unictype/pr_numeric.h lib/unictype/pr_other_alphabetic.h lib/unictype/pr_other_default_ignorable_code_point.h lib/unictype/pr_other_grapheme_extend.h lib/unictype/pr_other_id_continue.h lib/unictype/pr_other_id_start.h lib/unictype/pr_other_lowercase.h lib/unictype/pr_other_math.h lib/unictype/pr_other_uppercase.h lib/unictype/pr_paired_punctuation.h lib/unictype/pr_paragraph_separator.h lib/unictype/pr_pattern_syntax.h lib/unictype/pr_pattern_white_space.h lib/unictype/pr_private_use.h lib/unictype/pr_punctuation.h lib/unictype/pr_quotation_mark.h lib/unictype/pr_radical.h lib/unictype/pr_sentence_terminal.h lib/unictype/pr_soft_dotted.h lib/unictype/pr_space.h lib/unictype/pr_terminal_punctuation.h lib/unictype/pr_titlecase.h lib/unictype/pr_unassigned_code_value.h lib/unictype/pr_unified_ideograph.h lib/unictype/pr_uppercase.h lib/unictype/pr_variation_selector.h lib/unictype/pr_white_space.h lib/unictype/pr_xid_continue.h lib/unictype/pr_xid_start.h lib/unictype/pr_zero_width.h lib/unictype/scripts.h lib/unictype/scripts_byname.gperf lib/unictype/sy_c_ident.h lib/unictype/sy_c_whitespace.h lib/unictype/sy_java_ident.h lib/unictype/sy_java_whitespace.h lib/unilbrk/lbrkprop1.h lib/unilbrk/lbrkprop2.h tests/unictype/test-categ_C.c tests/unictype/test-categ_Cf.c tests/unictype/test-categ_Cn.c tests/unictype/test-categ_L.c tests/unictype/test-categ_Ll.c tests/unictype/test-categ_Lm.c tests/unictype/test-categ_Lo.c tests/unictype/test-categ_Lu.c tests/unictype/test-categ_M.c tests/unictype/test-categ_Mc.c tests/unictype/test-categ_Me.c tests/unictype/test-categ_Mn.c tests/unictype/test-categ_N.c tests/unictype/test-categ_Nd.c tests/unictype/test-categ_Nl.c tests/unictype/test-categ_No.c tests/unictype/test-categ_P.c tests/unictype/test-categ_Pd.c tests/unictype/test-categ_Pe.c tests/unictype/test-categ_Pf.c tests/unictype/test-categ_Pi.c tests/unictype/test-categ_Po.c tests/unictype/test-categ_Ps.c tests/unictype/test-categ_S.c tests/unictype/test-categ_Sk.c tests/unictype/test-categ_Sm.c tests/unictype/test-categ_So.c tests/unictype/test-ctype_alnum.c tests/unictype/test-ctype_alpha.c tests/unictype/test-ctype_graph.c tests/unictype/test-ctype_lower.c tests/unictype/test-ctype_print.c tests/unictype/test-ctype_punct.c tests/unictype/test-ctype_upper.c tests/unictype/test-decdigit.h tests/unictype/test-digit.h tests/unictype/test-numeric.h tests/unictype/test-pr_alphabetic.c tests/unictype/test-pr_bidi_arabic_digit.c tests/unictype/test-pr_bidi_arabic_right_to_left.c tests/unictype/test-pr_bidi_boundary_neutral.c tests/unictype/test-pr_bidi_eur_num_terminator.c tests/unictype/test-pr_bidi_left_to_right.c tests/unictype/test-pr_bidi_non_spacing_mark.c tests/unictype/test-pr_bidi_other_neutral.c tests/unictype/test-pr_combining.c tests/unictype/test-pr_dash.c tests/unictype/test-pr_decimal_digit.c tests/unictype/test-pr_default_ignorable_code_point.c tests/unictype/test-pr_deprecated.c tests/unictype/test-pr_diacritic.c tests/unictype/test-pr_extender.c tests/unictype/test-pr_format_control.c tests/unictype/test-pr_grapheme_base.c tests/unictype/test-pr_grapheme_extend.c tests/unictype/test-pr_grapheme_link.c tests/unictype/test-pr_id_continue.c tests/unictype/test-pr_id_start.c tests/unictype/test-pr_ideographic.c tests/unictype/test-pr_ignorable_control.c tests/unictype/test-pr_lowercase.c tests/unictype/test-pr_math.c tests/unictype/test-pr_numeric.c tests/unictype/test-pr_other_alphabetic.c tests/unictype/test-pr_other_default_ignorable_code_point.c tests/unictype/test-pr_other_grapheme_extend.c tests/unictype/test-pr_other_id_continue.c tests/unictype/test-pr_other_lowercase.c tests/unictype/test-pr_other_math.c tests/unictype/test-pr_punctuation.c tests/unictype/test-pr_sentence_terminal.c tests/unictype/test-pr_soft_dotted.c tests/unictype/test-pr_terminal_punctuation.c tests/unictype/test-pr_unassigned_code_value.c tests/unictype/test-pr_unified_ideograph.c tests/unictype/test-pr_uppercase.c tests/unictype/test-pr_xid_continue.c tests/unictype/test-pr_xid_start.c tests/unictype/test-pr_zero_width.c
diffstat 223 files changed, 10193 insertions(+), 7038 deletions(-) [+]
line wrap: on
line diff
--- a/lib/unictype/bidi_of.h
+++ b/lib/unictype/bidi_of.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Bidi categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define bidi_category_header_0 16
 #define bidi_category_header_1 17
 #define bidi_category_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[17];
     short level2[4 << 9];
-    unsigned short level3[90 * 40 + 1];
+    unsigned short level3[101 * 40 + 1];
   }
 u_bidi_category =
 {
@@ -25,22 +25,22 @@
        -1,   640,    -1,   768,   896,  1024,  1152,  1280,
      1408,  1408,  1536,  1664,  1792,  1920,  2048,  2176,
      2304,  2432,  2560,  2688,  2816,  2944,  3072,  3200,
-     3328,    -1,    -1,    -1,    -1,    -1,  3456,  3584,
-       -1,    -1,    -1,    -1,    -1,  3712,  3840,  3968,
-     4096,  4224,  4352,  4480,  4608,    -1,  4736,    -1,
-       -1,    -1,    -1,  4864,    -1,    -1,    -1,  4992,
-     5120,  5248,  5376,  5504,  5632,  5760,  5888,  6016,
-     6144,  6272,  5760,  5760,  5760,  6400,  6528,  6656,
-       -1,    -1,  5760,  5760,  5760,  5760,  6784,    -1,
-       -1,  6912,    -1,    -1,  7040,  7168,  5760,  7296,
-     7424,  7552,    -1,  7680,  7808,  7936,  8064,  8192,
+     3328,  3456,    -1,    -1,    -1,    -1,  3584,  3712,
+       -1,    -1,    -1,    -1,    -1,  3840,  3968,  4096,
+     4224,  4352,  4480,  4608,  4736,    -1,  4864,  4992,
+     5120,    -1,    -1,  5248,    -1,    -1,    -1,  5376,
+     5504,  5632,  5760,  5888,  6016,  6144,  6272,  6400,
+     6528,  6656,  6144,  6144,  6144,  6784,  6912,  7040,
+       -1,    -1,  6144,  6144,  6144,  6144,  7168,    -1,
+       -1,  7296,    -1,  7424,  7552,  7680,  6144,  7808,
+     7936,  8064,    -1,  8192,  8320,  8448,  8576,  8704,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,  8320,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,  8832,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -62,8 +62,8 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  8448,    -1,    -1,    -1,    -1,  8576,    -1,
-     8704,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  8960,    -1,    -1,  9088,    -1,  9216,  9344,
+     9472,  9600,  9728,    -1,  9856,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -83,11 +83,11 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  8832,  8960,
-     8960,  8960,  9088,  9216,  9344,  9472,  9600,  9728,
-       -1,    -1,  9856,  9984,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  9984, 10112,
+    10112, 10112, 10240, 10368, 10496, 10624, 10752, 10880,
+       -1,    -1, 11008, 11136,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1408,  1408, 10112,  1408, 10240,  1408,  1408,  1408,
+     1408,  1408, 11264,  1408, 11392,  1408,  1408,  1408,
      1408,  1408,  1408,  1408,  1408,  1408,  1408,  1408,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -137,18 +137,18 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1, 10368, 10496, 10624,    -1, 10752,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 10880,
+       -1,    -1, 11520, 11648, 11776,    -1, 11904,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12032,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    12160, 12288,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 11008,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -212,11 +212,11 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 11008,
-    11136, 11136, 11264, 11392, 11136, 11136, 11136, 11136,
-    11136, 11136, 11136, 11136, 11136, 11136, 11136, 11136,
-    11136, 11136, 11136, 11136, 11136, 11136, 11136, 11136,
-    11136, 11136, 11136, 11136, 11136, 11136, 11136, 11136,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416,
+    12544, 12544, 12672, 12800, 12544, 12544, 12544, 12544,
+    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
+    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
+    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -276,7 +276,7 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 11008
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416
   },
   {
     0x39ce, 0x9ce7, 0x0e73, 0x183e, 0x739f, 0x39ce, 0x9ce7, 0xce73,
@@ -304,7 +304,7 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0004, 0x0000, 0x0000,
-    0x8000, 0x5ad6, 0xad03, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x8000, 0x5ad6, 0xad6b, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -314,15 +314,15 @@
     0x5ad6, 0xad6b, 0xd6b5, 0x68da, 0xb5a3, 0xdad1, 0x6368, 0x318c,
     0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
     0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
-    0x1084, 0x0842, 0x8421, 0xc210, 0x9488, 0xb5ad, 0x1ad6, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0xad6b, 0x8845, 0x4494, 0xc229, 0x9488, 0xb5ad, 0x5ad6, 0xad6b,
+    0x4235, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd690,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x235a, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5a9, 0x2108, 0x108d, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6b48, 0xb5ad, 0x08d6,
+    0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6b56, 0xb5ad, 0x08d6,
     0x4d69, 0xd6b6, 0x211a, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x7108, 0x11a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xb5ad,
@@ -352,8 +352,8 @@
     0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0x35a0, 0x0000, 0x0d68, 0xd680,
-    0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x001a, 0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x01ad, 0x1a00, 0x0000, 0x0000, 0x0000,
     0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x1ad6, 0x0d68, 0x0000,
@@ -361,8 +361,8 @@
     0x0000, 0x0000, 0x0000, 0x0140, 0x0000, 0x0000, 0x0000, 0x0000,
     0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0xd000, 0x6800, 0xb5a0, 0x0006, 0x0000, 0x0000,
-    0x001a, 0x0000, 0x4000, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0xd000, 0x6800, 0xb5a0, 0x00d6, 0x0000, 0x0000,
+    0x001a, 0x0000, 0x4000, 0x0003, 0x0000, 0x0000, 0xb400, 0x0006,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x3400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -372,8 +372,8 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x6b40, 0x000d, 0x4000, 0x0d6b, 0xd6b4,
-    0x001a, 0x0000, 0x5a00, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x001a, 0x0000, 0x5a00, 0x0003, 0x0000, 0x0000, 0xb400, 0x0006,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5200, 0x294a, 0x04a5,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000,
@@ -381,8 +381,8 @@
     0x0000, 0x0000, 0x0000, 0x4a40, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xb5a0, 0x0006, 0x0000, 0x0000,
-    0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000,
+    0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -410,9 +410,14 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5a, 0x340d,
-    0x4000, 0xa06b, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0xad00, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5a, 0xb40d,
+    0x5ad6, 0xa06b, 0x0035, 0x035a, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0xad00, 0x0001, 0x6b40, 0x000d, 0x0000,
+    0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000, 0x0000,
+    0x3400, 0x5a00, 0x0003, 0x0000, 0x001a, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -450,7 +455,7 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x35ad, 0x0000, 0xad68, 0x06b5, 0x0000, 0x3400,
+    0x0000, 0x0000, 0x35ad, 0x0000, 0x0d68, 0x0000, 0x0000, 0x3400,
     0x0000, 0xa000, 0x06b5, 0x0000, 0x0012, 0x2520, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -469,11 +474,21 @@
     0x40d0, 0xad6b, 0xd035, 0x0000, 0x3400, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xd680, 0x6b5a, 0xb5ad, 0x0006, 0x0000, 0x0000, 0x0000,
+    0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0xb400, 0x1ad6, 0xad00, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0x0035,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000, 0x6b5a, 0xb5ad,
+    0x4006, 0x006b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b40,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b40,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x9024, 0x0252, 0x0000, 0x0000, 0x0000,
@@ -482,13 +497,13 @@
     0xc631, 0x6318, 0x318c, 0xe746, 0x181c, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0xf194, 0x7285, 0x6184, 0x294a,
     0xa4a5, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa4c9, 0x5294, 0x294a,
-    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x8ca5, 0x39ce, 0x0847,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x8ca5, 0x39ce, 0x08e7,
     0x8421, 0xe738, 0x739c, 0x0008, 0x1080, 0x0842, 0x24a5, 0x04a5,
     0x2108, 0x1084, 0x0842, 0x24a5, 0x04a5, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x14a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
-    0xad6b, 0xd6b5, 0x6b5a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xad6b, 0xd6b5, 0x6b5a, 0x000d, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0252, 0xa529, 0x5204, 0x0002, 0x0000, 0x0000, 0x8120, 0x1294,
     0x0000, 0x9480, 0x4a52, 0x2409, 0x4090, 0x0002, 0x0280, 0x0000,
     0x0000, 0x0000, 0x0948, 0x0000, 0x4a52, 0x0129, 0x0000, 0x2948,
@@ -530,8 +545,8 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x2948, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x294a, 0x0001, 0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x294a, 0x0025, 0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x0001, 0x4a52, 0x0009, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x4a40, 0x8129, 0x5294, 0x2002, 0x94a5, 0x4a52, 0xa529, 0x5294,
@@ -541,21 +556,26 @@
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0129, 0x5200,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a40,
-    0xa529, 0x5294, 0x294a, 0x04a5, 0x4a52, 0xa529, 0x5294, 0x004a,
-    0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
-    0x5294, 0x094a, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+    0xa529, 0x5294, 0x294a, 0x04a5, 0x4a52, 0xa529, 0x5294, 0x204a,
+    0x0001, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x004a, 0x0000, 0x4a52, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x0001, 0x4a52, 0x0129, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa400,
     0x5294, 0x004a, 0x0000, 0x0000, 0x0000, 0x4000, 0x294a, 0x94a5,
-    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x0094,
-    0x2000, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0012,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -582,7 +602,7 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a,
-    0x94a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x04a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -614,8 +634,18 @@
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x0004, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x94a4, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x6800, 0x35ad, 0x0009, 0x0000, 0xd000, 0x949a,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x004a, 0x0000, 0x0252, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x294a, 0x94a5, 0x0252, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x1200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -625,6 +655,21 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa520, 0x0094, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d0, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x4000, 0xad6b, 0xd6b5, 0x001a, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xad68, 0xd6b5,
+    0x6b5a, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xd6b5, 0x035a, 0x35a0,
+    0x5a00, 0x0003, 0x0000, 0x0000, 0x8000, 0x0006, 0x0000, 0xd000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x1b46, 0x8c63, 0xc631, 0x2318, 0x318d, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
     0x18c6, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
@@ -645,7 +690,7 @@
     0x2108, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7,
     0xce73, 0xe739, 0x739c, 0x1084, 0x0842, 0x8421, 0x4210, 0x2124,
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0x4a52, 0xa529, 0x5294,
-    0x4212, 0x2108, 0xb5ad, 0x0846, 0x8421, 0x4210, 0x2108, 0x4a52,
+    0x4212, 0x2108, 0xb5ad, 0x5ad6, 0x8423, 0x4210, 0x2108, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x94a5, 0x324c, 0x9922, 0x5294, 0x294a, 0x54a5, 0xa652, 0xa524,
     0x5224, 0x4929, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
@@ -669,11 +714,11 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
-    0x4a52, 0xa529, 0x5294, 0x004a, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4a52, 0xa529, 0x5294, 0x004a, 0x0000, 0x4a52, 0xa529, 0x5294,
+    0x094a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001a,
     0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
     0x318c, 0x90c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
@@ -709,6 +754,16 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x4200, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x094a, 0x0000, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
--- a/lib/unictype/blocks.h
+++ b/lib/unictype/blocks.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode blocks.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 static const uc_block_t blocks[] =
 {
   { 0x0000, 0x007F, "Basic Latin" },
@@ -54,6 +54,9 @@
   { 0x19E0, 0x19FF, "Khmer Symbols" },
   { 0x1A00, 0x1A1F, "Buginese" },
   { 0x1B00, 0x1B7F, "Balinese" },
+  { 0x1B80, 0x1BBF, "Sundanese" },
+  { 0x1C00, 0x1C4F, "Lepcha" },
+  { 0x1C50, 0x1C7F, "Ol Chiki" },
   { 0x1D00, 0x1D7F, "Phonetic Extensions" },
   { 0x1D80, 0x1DBF, "Phonetic Extensions Supplement" },
   { 0x1DC0, 0x1DFF, "Combining Diacritical Marks Supplement" },
@@ -89,6 +92,7 @@
   { 0x2D00, 0x2D2F, "Georgian Supplement" },
   { 0x2D30, 0x2D7F, "Tifinagh" },
   { 0x2D80, 0x2DDF, "Ethiopic Extended" },
+  { 0x2DE0, 0x2DFF, "Cyrillic Extended-A" },
   { 0x2E00, 0x2E7F, "Supplemental Punctuation" },
   { 0x2E80, 0x2EFF, "CJK Radicals Supplement" },
   { 0x2F00, 0x2FDF, "Kangxi Radicals" },
@@ -109,10 +113,16 @@
   { 0x4E00, 0x9FFF, "CJK Unified Ideographs" },
   { 0xA000, 0xA48F, "Yi Syllables" },
   { 0xA490, 0xA4CF, "Yi Radicals" },
+  { 0xA500, 0xA63F, "Vai" },
+  { 0xA640, 0xA69F, "Cyrillic Extended-B" },
   { 0xA700, 0xA71F, "Modifier Tone Letters" },
   { 0xA720, 0xA7FF, "Latin Extended-D" },
   { 0xA800, 0xA82F, "Syloti Nagri" },
   { 0xA840, 0xA87F, "Phags-pa" },
+  { 0xA880, 0xA8DF, "Saurashtra" },
+  { 0xA900, 0xA92F, "Kayah Li" },
+  { 0xA930, 0xA95F, "Rejang" },
+  { 0xAA00, 0xAA5F, "Cham" },
   { 0xAC00, 0xD7AF, "Hangul Syllables" },
   { 0xD800, 0xDB7F, "High Surrogates" },
   { 0xDB80, 0xDBFF, "High Private Use Surrogates" },
@@ -133,6 +143,10 @@
   { 0x10080, 0x100FF, "Linear B Ideograms" },
   { 0x10100, 0x1013F, "Aegean Numbers" },
   { 0x10140, 0x1018F, "Ancient Greek Numbers" },
+  { 0x10190, 0x101CF, "Ancient Symbols" },
+  { 0x101D0, 0x101FF, "Phaistos Disc" },
+  { 0x10280, 0x1029F, "Lycian" },
+  { 0x102A0, 0x102DF, "Carian" },
   { 0x10300, 0x1032F, "Old Italic" },
   { 0x10330, 0x1034F, "Gothic" },
   { 0x10380, 0x1039F, "Ugaritic" },
@@ -142,6 +156,7 @@
   { 0x10480, 0x104AF, "Osmanya" },
   { 0x10800, 0x1083F, "Cypriot Syllabary" },
   { 0x10900, 0x1091F, "Phoenician" },
+  { 0x10920, 0x1093F, "Lydian" },
   { 0x10A00, 0x10A5F, "Kharoshthi" },
   { 0x12000, 0x123FF, "Cuneiform" },
   { 0x12400, 0x1247F, "Cuneiform Numbers and Punctuation" },
@@ -151,6 +166,8 @@
   { 0x1D300, 0x1D35F, "Tai Xuan Jing Symbols" },
   { 0x1D360, 0x1D37F, "Counting Rod Numerals" },
   { 0x1D400, 0x1D7FF, "Mathematical Alphanumeric Symbols" },
+  { 0x1F000, 0x1F02F, "Mahjong Tiles" },
+  { 0x1F030, 0x1F09F, "Domino Tiles" },
   { 0x20000, 0x2A6DF, "CJK Unified Ideographs Extension B" },
   { 0x2F800, 0x2FA1F, "CJK Compatibility Ideographs Supplement" },
   { 0xE0000, 0xE007F, "Tags" },
@@ -189,747 +206,747 @@
    44,  45,
    45,  49,
    49,  50,
-   50,  51,
-   51,  51,
-   51,  54,
-   54,  55,
-   55,  56,
-   56,  60,
-   60,  63,
-   63,  64,
-   64,  65,
-   65,  68,
+   50,  52,
+   52,  54,
+   54,  57,
+   57,  58,
+   58,  59,
+   59,  63,
+   63,  66,
+   66,  67,
+   67,  68,
    68,  71,
-   71,  72,
-   72,  75,
-   75,  76,
-   76,  78,
+   71,  74,
+   74,  75,
+   75,  78,
    78,  79,
-   79,  80,
-   80,  83,
+   79,  81,
+   81,  82,
+   82,  83,
    83,  86,
-   86,  88,
-   88,  90,
-   90,  93,
-   93,  99,
-   99, 100,
-  100, 101,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 102,
-  101, 103,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
-  103, 104,
+   86,  90,
+   90,  92,
+   92,  94,
+   94,  97,
+   97, 103,
   103, 104,
   104, 105,
-  104, 105,
-  104, 105,
-  104, 105,
-  104, 106,
-  106, 106,
-  106, 106,
-  106, 108,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 106,
+  105, 107,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  107, 108,
+  108, 109,
+  108, 109,
+  108, 109,
+  108, 109,
   108, 110,
-  110, 110,
-  110, 110,
-  110, 110,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
   110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  110, 111,
-  111, 112,
-  111, 112,
-  111, 112,
-  111, 113,
-  113, 114,
-  113, 114,
-  113, 114,
-  113, 114,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  114, 115,
-  115, 116,
-  115, 116,
-  116, 118,
-  117, 118,
-  117, 118,
-  118, 124,
-  124, 126,
+  110, 112,
+  112, 114,
+  114, 117,
+  117, 119,
+  119, 120,
+  120, 120,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  120, 121,
+  121, 122,
+  121, 122,
+  121, 122,
+  121, 123,
+  123, 124,
+  123, 124,
+  123, 124,
+  123, 124,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  124, 125,
+  125, 126,
+  125, 126,
   126, 128,
-  128, 130,
-  130, 130,
-  130, 134,
-  134, 137,
-  137, 137,
-  137, 137,
-  137, 137,
-  137, 138,
-  138, 139,
-  139, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 140,
-  140, 141,
-  140, 141,
-  140, 141,
-  140, 141,
-  141, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 142,
-  142, 143,
-  143, 144,
-  144, 145,
-  145, 147,
-  147, 148,
-  147, 148,
-  147, 148,
-  147, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 148,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  148, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 149,
-  149, 150,
-  149, 150,
-  149, 150,
-  150, 150,
-  150, 150,
-  150, 150,
-  150, 150,
-  150, 150
+  127, 128,
+  127, 128,
+  128, 134,
+  134, 136,
+  136, 138,
+  138, 142,
+  142, 144,
+  144, 148,
+  148, 151,
+  151, 151,
+  151, 151,
+  151, 151,
+  151, 152,
+  152, 154,
+  154, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 155,
+  155, 156,
+  155, 156,
+  155, 156,
+  155, 156,
+  156, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 157,
+  157, 158,
+  158, 159,
+  159, 160,
+  160, 162,
+  162, 163,
+  162, 163,
+  162, 163,
+  162, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 163,
+  163, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 165,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  165, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 166,
+  166, 167,
+  166, 167,
+  166, 167,
+  167, 167,
+  167, 167,
+  167, 167,
+  167, 167,
+  167, 167
 };
-#define blocks_upper_first_index 150
-#define blocks_upper_last_index 154
+#define blocks_upper_first_index 167
+#define blocks_upper_last_index 171
--- a/lib/unictype/categ_C.h
+++ b/lib/unictype/categ_C.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[50 << 4];
+    /*unsigned*/ int level3[52 << 4];
   }
 u_categ_C =
 {
@@ -144,22 +144,21 @@
        -1,
        -1,
        18 +   640 * sizeof (short) / sizeof (int) +   496,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   528,
        18 +   640 * sizeof (short) / sizeof (int) +   544,
@@ -167,131 +166,132 @@
        18 +   640 * sizeof (short) / sizeof (int) +   576,
        18 +   640 * sizeof (short) / sizeof (int) +   592,
        18 +   640 * sizeof (short) / sizeof (int) +   608,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
        18 +   640 * sizeof (short) / sizeof (int) +   624,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   640,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   656,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   656,
        18 +   640 * sizeof (short) / sizeof (int) +   672,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
        18 +   640 * sizeof (short) / sizeof (int) +   688,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   704,
        18 +   640 * sizeof (short) / sizeof (int) +   720,
        18 +   640 * sizeof (short) / sizeof (int) +   736,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -375,307 +375,307 @@
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   784,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
-       18 +   640 * sizeof (short) / sizeof (int) +   480
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   816,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   512
   },
   {
     0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
@@ -684,34 +684,34 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x83CF0000,
-    0x0000280F, 0x00000004, 0x00008000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x83000000,
+    0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000080, 0x00000000, 0x00000000, 0x00000000,
-    0xFFF00000, 0x0001FFFF, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x37C007FF, 0xF8000001, 0x80000000, 0x00000000,
+    0x3000003F, 0x00000001, 0x80000000, 0x00000000,
     0x00000000, 0x00000000, 0x20000000, 0x00000000,
-    0x0000C000, 0x00000000, 0x00001800, 0xFFFFC000,
+    0x0000C000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07FE0000,
+    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
     0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
-    0x00067811, 0x2C920200, 0xA1FFC678, 0xFFE0003F,
+    0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC670, 0xFFFC003C,
-    0x29C23813, 0x3C0038E7, 0xFF7FC238, 0xF800003F,
-    0x00022011, 0x3C100200, 0xFF9FC220, 0xFFFF003C,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+    0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x3C000200, 0xFF7FC230, 0xFFFF003C,
+    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000100, 0x0001F800,
-    0x0100F000, 0x20000000, 0xFFFC6000, 0xFFFFFFFF,
-    0x00000000, 0xFC380904, 0xFC000000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
     0x00000000, 0x00000000, 0x7C000000, 0x00000000,
     0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
@@ -727,25 +727,25 @@
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00300000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
     0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
     0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x07000000, 0x00001C00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFF800, 0x3FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF0000000, 0x00000000, 0x00000000, 0xFC000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
     0x0000F800, 0x00007C00, 0x00000000, 0x000CFFFF,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFF0000,
-    0x00000000, 0x00000000, 0x00078000, 0x00000000,
-    0x0000FFE0, 0x00000000, 0x00000000, 0x00000000,
+    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+    0x00000000, 0x00000000, 0x00070000, 0x00000000,
+    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -755,25 +755,25 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xE0000000, 0xFFF80000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000F800, 0x0000F000,
+    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF8000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xFF0FE000,
+    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
     0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
     0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
-    0xFF800000, 0x80808080, 0x80808080, 0xFFFFFFFF,
-    0xCF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000001F, 0x0001E000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0xFFFF0000, 0x0000FFFF,
+    0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
     0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -785,20 +785,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xF8000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -808,6 +808,10 @@
     0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
@@ -818,16 +822,16 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
     0x00030000, 0x00000000, 0xFFFFFF00, 0xC000FFFF,
-    0xFC000000, 0x0000FFF0, 0x00080000, 0x0020F080,
+    0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
     0x00000000, 0x00000000, 0x00000000, 0xE0000000,
     0x00000001, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0xE3030303, 0xCFFF8080,
     0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0xF8000000,
     0x00000078, 0x00700000, 0x00000000, 0x00000000,
-    0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
     0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
     0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -836,7 +840,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -852,7 +856,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
-    0x00000000, 0x00000380, 0x00000000, 0x07F80000,
+    0x00000000, 0x00000180, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -866,6 +870,10 @@
     0x00000000, 0x000000C0, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
+    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
--- a/lib/unictype/categ_Cc.h
+++ b/lib/unictype/categ_Cc.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Cf.h
+++ b/lib/unictype/categ_Cf.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -432,7 +432,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00300000, 0x00000000, 0x00000000,
-    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC0F,
+    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Cn.h
+++ b/lib/unictype/categ_Cn.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[6 << 7];
-    /*unsigned*/ int level3[49 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_categ_Cn =
 {
@@ -167,131 +167,131 @@
        18 +   768 * sizeof (short) / sizeof (int) +   544,
        18 +   768 * sizeof (short) / sizeof (int) +   560,
        18 +   768 * sizeof (short) / sizeof (int) +   576,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
        18 +   768 * sizeof (short) / sizeof (int) +   592,
        18 +   768 * sizeof (short) / sizeof (int) +   608,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
+       18 +   768 * sizeof (short) / sizeof (int) +   624,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   624,
        18 +   768 * sizeof (short) / sizeof (int) +   640,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
        18 +   768 * sizeof (short) / sizeof (int) +   656,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
        18 +   768 * sizeof (short) / sizeof (int) +   672,
        18 +   768 * sizeof (short) / sizeof (int) +   688,
        18 +   768 * sizeof (short) / sizeof (int) +   704,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
+       18 +   768 * sizeof (short) / sizeof (int) +   720,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   736,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -375,307 +375,307 @@
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   720,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
+       18 +   768 * sizeof (short) / sizeof (int) +   752,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   736,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   752,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
+       18 +   768 * sizeof (short) / sizeof (int) +   768,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   784,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -803,39 +803,39 @@
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   768
+       18 +   768 * sizeof (short) / sizeof (int) +   800
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x83CF0000,
-    0x0000280F, 0x00000004, 0x00008000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x83000000,
+    0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000080, 0x00000000, 0x00000000, 0x00000000,
-    0xFFF00000, 0x0001FFFF, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x37C007F0, 0xF8000001, 0x80000000, 0x00000000,
+    0x30000030, 0x00000001, 0x80000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00004000, 0x00000000, 0x00001800, 0xFFFFC000,
+    0x00004000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07FE0000,
+    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
     0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
-    0x00067811, 0x2C920200, 0xA1FFC678, 0xFFE0003F,
+    0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC670, 0xFFFC003C,
-    0x29C23813, 0x3C0038E7, 0xFF7FC238, 0xF800003F,
-    0x00022011, 0x3C100200, 0xFF9FC220, 0xFFFF003C,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+    0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x3C000200, 0xFF7FC230, 0xFFFF003C,
+    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000100, 0x0001F800,
-    0x0100F000, 0x20000000, 0xFFFC6000, 0xFFFFFFFF,
-    0x00000000, 0xFC380904, 0xFC000000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
     0x00000000, 0x00000000, 0x7C000000, 0x00000000,
     0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
@@ -851,25 +851,25 @@
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
     0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
     0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x07000000, 0x00001C00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFF800, 0x3FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF0000000, 0x00000000, 0x00000000, 0xFC000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
-    0x00000000, 0x00000000, 0x00000000, 0x000C03F0,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFF0000,
-    0x00000000, 0x00000000, 0x00078000, 0x00000000,
-    0x0000FFE0, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
+    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+    0x00000000, 0x00000000, 0x00070000, 0x00000000,
+    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -879,25 +879,25 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xE0000000, 0xFFF80000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000F800, 0x0000F000,
+    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF8000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xFF0FE000,
+    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
     0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
     0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
-    0xFF800000, 0x80808080, 0x80808080, 0xFFFFFFFF,
-    0xCF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000001F, 0x0001E000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0xFFFF0000, 0x0000FFFF,
+    0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
     0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -909,20 +909,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xF8000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -938,25 +938,29 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
     0x00030000, 0x00000000, 0xFFFFFF00, 0xC000FFFF,
-    0xFC000000, 0x0000FFF0, 0x00080000, 0x0020F080,
+    0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
     0x00000000, 0x00000000, 0x00000000, 0x60000000,
     0x00000001, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0xE3030303, 0xC1FF8080,
     0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0xF8000000,
     0x00000078, 0x00700000, 0x00000000, 0x00000000,
-    0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
     0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
     0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -972,7 +976,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
-    0x00000000, 0x00000380, 0x00000000, 0x00000000,
+    0x00000000, 0x00000180, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -986,6 +990,10 @@
     0x00000000, 0x000000C0, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
+    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
--- a/lib/unictype/categ_Co.h
+++ b/lib/unictype/categ_Co.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Cs.h
+++ b/lib/unictype/categ_Cs.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_L.h
+++ b/lib/unictype/categ_L.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[40 << 4];
+    /*unsigned*/ int level3[42 << 4];
   }
 u_categ_L =
 {
@@ -45,91 +45,91 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   272,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   400,
+        4 +   384 * sizeof (short) / sizeof (int) +   416,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
        -1,
@@ -146,17 +146,17 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   416,
-        4 +   384 * sizeof (short) / sizeof (int) +   432,
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
+       -1,
        -1,
        -1,
        -1,
@@ -166,8 +166,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -278,90 +278,90 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000000, 0x3C000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000000, 0x3CDF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8000003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x00000000,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
-    0x00000001, 0x00000000, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F0000, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+    0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,32 +457,36 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0x00000000,
     0x00000018, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000060, 0x183E0000, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -495,16 +499,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -533,7 +541,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000003FD, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x0000FF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -542,7 +550,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Ll.h
+++ b/lib/unictype/categ_Ll.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[12 << 4];
+    /*unsigned*/ int level3[13 << 4];
   }
 u_categ_Ll =
 {
@@ -104,6 +104,7 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -145,13 +146,12 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -255,8 +255,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -285,28 +285,32 @@
     0x4E243129, 0xE6512D2A, 0xB5555240, 0xAA29AAAA,
     0xAAAAAAAA, 0x93FAAAAA, 0xFFFFAA85, 0xFFFFFFFF,
     0xFFEFFFFF, 0x0000FFFF, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x38000000,
+    0x00000000, 0x00000000, 0x00000000, 0x388A0000,
     0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0x000AAAAA, 0x00000000, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x00000FFF, 0x00000000, 0xFEFFFFFC,
     0x07FFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
-    0x0FEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x02AAAAAA,
+    0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
     0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
     0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0008C400, 0x32108000, 0x000043C0, 0x00000000,
     0x00000010, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00D01562,
+    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x1FDA1562,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FEAAAA,
+    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Lm.h
+++ b/lib/unictype/categ_Lm.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[14 << 4];
+    /*unsigned*/ int level3[16 << 4];
   }
 u_categ_Lm =
 {
@@ -22,27 +22,27 @@
         2 +   128 * sizeof (short) / sizeof (int) +     0,
         2 +   128 * sizeof (short) / sizeof (int) +    16,
         2 +   128 * sizeof (short) / sizeof (int) +    32,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    48,
         2 +   128 * sizeof (short) / sizeof (int) +    64,
+        2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    80,
         2 +   128 * sizeof (short) / sizeof (int) +    96,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +   128,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   144,
+       -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   144,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   160,
+        2 +   128 * sizeof (short) / sizeof (int) +   176,
+        2 +   128 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -98,10 +98,10 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   176,
+        2 +   128 * sizeof (short) / sizeof (int) +   208,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   192,
+        2 +   128 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
        -1,
@@ -145,12 +145,12 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   208
+        2 +   128 * sizeof (short) / sizeof (int) +   240
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFF0000, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000000, 0x04000000,
+    0x00000000, 0xFFFF0000, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000000, 0x04100000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -160,6 +160,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000060,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x04300000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00020000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000040, 0x00000000,
     0x00000000, 0x00000000, 0x00000040, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -176,7 +180,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x3F000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x01000003,
     0xF8000000, 0xFFFFFFFF, 0x00000000, 0x00000000,
@@ -184,9 +188,13 @@
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00008000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00008000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000020, 0x083E0000, 0x00000000, 0x00000000,
     0x60000000, 0x00000000, 0x00000000, 0x70000000,
@@ -196,10 +204,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00001000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0x00000000, 0x00000000, 0x00010000,
+    0x00000100, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
--- a/lib/unictype/categ_Lo.h
+++ b/lib/unictype/categ_Lo.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[36 << 4];
+    /*unsigned*/ int level3[39 << 4];
   }
 u_categ_Lo =
 {
@@ -36,100 +36,100 @@
         4 +   384 * sizeof (short) / sizeof (int) +   176,
         4 +   384 * sizeof (short) / sizeof (int) +   192,
         4 +   384 * sizeof (short) / sizeof (int) +   208,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   224,
+        4 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   240,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   256,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
+        4 +   384 * sizeof (short) / sizeof (int) +   384,
+        4 +   384 * sizeof (short) / sizeof (int) +   400,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -146,16 +146,16 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   384,
-        4 +   384 * sizeof (short) / sizeof (int) +   400,
-        4 +   384 * sizeof (short) / sizeof (int) +   416,
         4 +   384 * sizeof (short) / sizeof (int) +   432,
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
+        4 +   384 * sizeof (short) / sizeof (int) +   528,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   544,
+        4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -166,8 +166,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   528,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
        -1,
        -1,
        -1,
@@ -278,90 +278,90 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   544,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   272,
-        4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
        -1,
        -1
   },
@@ -420,28 +420,28 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFE, 0x000007FE, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C000,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x000007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8000003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8040003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x00000000,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000003F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000001F, 0x00000000,
-    0x00000001, 0x00000000, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F0000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x07FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+    0x00004003, 0x00000000, 0xFFFF0000, 0x07FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,12 +457,16 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFF7, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x00FFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -474,7 +478,7 @@
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x00000040, 0x10000000, 0xFFFFFFFE, 0xFFFFFFFF,
     0x807FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x87FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -487,16 +491,24 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF0FFF, 0x00000C00, 0x00000000, 0x00004000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -525,7 +537,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000003FD, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x0000FF0F, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
@@ -534,7 +546,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Lt.h
+++ b/lib/unictype/categ_Lt.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Lu.h
+++ b/lib/unictype/categ_Lu.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[11 << 4];
+    /*unsigned*/ int level3[12 << 4];
   }
 u_categ_Lu =
 {
@@ -104,6 +104,113 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -148,115 +255,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -285,28 +285,32 @@
     0xB1DBCED6, 0x11AED2D5, 0x4AAAA490, 0x55D25555,
     0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFED740, 0x00000FFB, 0x551C0000, 0xE6905555,
+    0x00000000, 0x00000000, 0x00000000, 0x00450000,
+    0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x00055555, 0xFFFE0000, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x55555555, 0x55555555, 0x55555555, 0x55555555,
-    0x00155555, 0x55555555, 0x55555555, 0x01555555,
+    0x40155555, 0x55555555, 0x55555555, 0x55555555,
     0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
     0x00000000, 0x0F000000, 0x0F000F00, 0x0F001F00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x3E273884, 0xC00F3D50, 0x00000020, 0x00000000,
     0x00000008, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00200A9D,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
     0x55555555, 0x55555555, 0x55555555, 0x00000005,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00555555, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+    0x00000855, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_M.h
+++ b/lib/unictype/categ_M.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_categ_M =
 {
@@ -56,9 +56,9 @@
        -1,
        -1,
        -1,
-       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -117,8 +117,9 @@
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -158,16 +159,15 @@
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   256,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   304,
-       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -425,10 +425,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000378, 0x00000000, 0x00000000, 0x00000000,
+    0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
     0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
@@ -436,20 +436,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
     0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
-    0x0000000E, 0xD0000000, 0x00003987, 0x00030000,
+    0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
-    0x0000000E, 0xD0000000, 0x00C0398F, 0x00000000,
+    0x0000000E, 0xD0000000, 0x00C0399F, 0x0000000C,
     0x00000004, 0xC0000000, 0x00803DC7, 0x00000000,
-    0x0000000E, 0xC0000000, 0x00603DDF, 0x00000000,
+    0x0000000E, 0xC0000000, 0x00603DDF, 0x0000000C,
     0x0000000C, 0xD0000000, 0x00603DDF, 0x0000000C,
-    0x0000000C, 0xC0000000, 0x00803DCF, 0x00000000,
+    0x0000000C, 0xC0000000, 0x00803DDF, 0x0000000C,
     0x0000000C, 0x00000000, 0xFF5F8400, 0x000C0000,
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
     0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0x00000000, 0x03C7F000, 0x03C00000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
+    0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -467,20 +467,32 @@
     0x0F800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
+    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x30078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x000000F8, 0x00000000, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+    0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -488,10 +500,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000FFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Mc.h
+++ b/lib/unictype/categ_Mc.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[12 << 4];
   }
 u_categ_Mc =
 {
@@ -35,6 +35,7 @@
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -104,8 +105,8 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -252,8 +253,7 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -295,8 +295,8 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xC0000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x01021000, 0x00C00000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x19021800, 0x00C00000, 0x00003F9C,
+    0x00009F98, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -310,8 +310,16 @@
     0x0E000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000010, 0xE8200000, 0x0000001B, 0x00000000,
+    0x00000004, 0x000004C2, 0x00000000, 0x00000000,
+    0x00000000, 0x00300FF0, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000004, 0x00000098, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000098, 0x00000000, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
+    0x00000000, 0x00000000, 0x000C0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00198000, 0x00002000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Me.h
+++ b/lib/unictype/categ_Me.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[3 << 4];
+    /*unsigned*/ int level3[4 << 4];
   }
 u_categ_Me =
 {
@@ -101,7 +101,7 @@
        -1,
        -1,
        -1,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
        -1,
@@ -159,6 +159,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xE0000000, 0x0000001D,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00070000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/categ_Mn.h
+++ b/lib/unictype/categ_Mn.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_categ_Mn =
 {
@@ -56,9 +56,9 @@
        -1,
        -1,
        -1,
-       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -117,8 +117,9 @@
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -158,16 +159,15 @@
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   256,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   304,
-       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -425,10 +425,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000078, 0x00000000, 0x00000000, 0x00000000,
+    0x000000F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
     0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
@@ -436,20 +436,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
     0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
-    0x00000006, 0x10000000, 0x00003986, 0x00030000,
+    0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
-    0x00000002, 0x90000000, 0x0040200E, 0x00000000,
+    0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
     0x00000004, 0x00000000, 0x00002001, 0x00000000,
-    0x00000000, 0xC0000000, 0x00603DC1, 0x00000000,
+    0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
     0x00000000, 0x90000000, 0x00003040, 0x0000000C,
-    0x00000000, 0x00000000, 0x0000200E, 0x00000000,
+    0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
     0x00000000, 0x00000000, 0x005C0400, 0x00000000,
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
     0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0x00000000, 0x02C5E000, 0x03000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+    0x00002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -467,20 +467,32 @@
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x1FFF0000, 0x0000FFE2,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000840, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x30008000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000844, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00667E00, 0x00001008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -488,10 +500,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000FFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_N.h
+++ b/lib/unictype/categ_N.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[30 << 4];
   }
 u_categ_N =
 {
@@ -35,18 +35,58 @@
         3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   240,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -64,6 +104,72 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   416,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -148,115 +254,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -295,16 +295,16 @@
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x003FFFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x000003FF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -322,11 +322,15 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03F10000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
-    0x00000007, 0x00000000, 0x00000000, 0x00000000,
+    0x000001E7, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -347,6 +351,18 @@
     0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Nd.h
+++ b/lib/unictype/categ_Nd.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[13 << 4];
+    /*unsigned*/ int level3[17 << 4];
   }
 u_categ_Nd =
 {
@@ -35,6 +35,56 @@
         3 +   256 * sizeof (short) / sizeof (int) +   112,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -54,6 +104,64 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -148,115 +256,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -304,7 +304,7 @@
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x000003FF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -318,6 +318,22 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Nl.h
+++ b/lib/unictype/categ_Nl.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -286,7 +286,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
-    0x00000007, 0x00000000, 0x00000000, 0x00000000,
+    0x000001E7, 0x00000000, 0x00000000, 0x00000000,
     0x00000080, 0x070003FE, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_No.h
+++ b/lib/unictype/categ_No.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[17 << 4];
+    /*unsigned*/ int level3[18 << 4];
   }
 u_categ_No =
 {
@@ -27,26 +27,26 @@
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +    16,
         3 +   256 * sizeof (short) / sizeof (int) +    32,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +    48,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +    64,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +    80,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    96,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -149,12 +149,12 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -254,7 +254,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -291,6 +291,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00070000,
+    0x00000000, 0x00000000, 0x00000000, 0x7F000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x003F0000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x000FFC00, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_P.h
+++ b/lib/unictype/categ_P.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[27 << 4];
+    /*unsigned*/ int level3[30 << 4];
   }
 u_categ_P =
 {
@@ -35,17 +35,17 @@
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -104,8 +104,9 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -146,15 +147,14 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
         3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   416,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -291,7 +291,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000000,
     0x00000600, 0x40000000, 0x00000049, 0x00180000,
-    0xC8003000, 0x00000000, 0x00000000, 0x00003C00,
+    0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
@@ -306,7 +306,7 @@
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x00030000, 0x00000000,
+    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -327,6 +327,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
     0x00006000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -338,7 +342,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x003FFF00,
-    0x00000000, 0x00000000, 0x00000060, 0x00000FC0,
+    0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -347,7 +351,7 @@
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -355,7 +359,15 @@
     0x00000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xF0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -377,7 +389,7 @@
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x80000000, 0x00000000, 0x00000000, 0x00000000,
+    0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Pc.h
+++ b/lib/unictype/categ_Pc.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Pd.h
+++ b/lib/unictype/categ_Pd.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -155,7 +155,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000400, 0x00000000, 0x00000000, 0x00000000,
+    0x00000400, 0x40000000, 0x00000000, 0x00000000,
     0x00000040, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -164,7 +164,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00800000, 0x00000000, 0x00000000, 0x00000000,
+    0x04800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Pe.h
+++ b/lib/unictype/categ_Pe.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[11 << 4];
   }
 u_categ_Pe =
 {
@@ -41,8 +41,8 @@
         2 +   128 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   112,
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -144,8 +144,8 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   128,
-        2 +   128 * sizeof (short) / sizeof (int) +   144
+        2 +   128 * sizeof (short) / sizeof (int) +   144,
+        2 +   128 * sizeof (short) / sizeof (int) +   160
   },
   {
     0x00000000, 0x00000200, 0x20000000, 0x20000000,
@@ -171,11 +171,15 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x002AAA00,
-    0x00000000, 0x00000000, 0x00000040, 0x00000A80,
+    0x00000000, 0x00000000, 0x00000040, 0x0000AA80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x01555550, 0x00000000, 0x0A000000, 0x20000000,
+    0x00000000, 0x000002A8, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xCAA2AA00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Pf.h
+++ b/lib/unictype/categ_Pf.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -156,7 +156,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x20002428, 0x00000000, 0x00000000, 0x00000000,
+    0x20002428, 0x00000002, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
--- a/lib/unictype/categ_Pi.h
+++ b/lib/unictype/categ_Pi.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -156,7 +156,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x10001214, 0x00000000, 0x00000000, 0x00000000,
+    0x10001214, 0x00000001, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
--- a/lib/unictype/categ_Po.h
+++ b/lib/unictype/categ_Po.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[23 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_categ_Po =
 {
@@ -35,17 +35,17 @@
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
        -1,
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -104,8 +104,9 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -147,14 +148,13 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,8 +290,8 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000000,
-    0x00000200, 0x40000000, 0x00000049, 0x00180000,
-    0xC8003000, 0x00000000, 0x00000000, 0x00003C00,
+    0x00000200, 0x00000000, 0x00000049, 0x00180000,
+    0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
@@ -306,7 +306,7 @@
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x00000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x00030000, 0x00000000,
+    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -327,6 +327,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00C00000, 0x79FF00FF, 0x7FEBFF8E, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -335,7 +339,7 @@
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x007FC9C3, 0x00000000, 0x00000000, 0x00000000,
+    0xCB7FC9C3, 0x00017C00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -343,7 +347,15 @@
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xF0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -361,7 +373,7 @@
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x80000000, 0x00000000, 0x00000000, 0x00000000,
+    0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_Ps.h
+++ b/lib/unictype/categ_Ps.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[11 << 4];
   }
 u_categ_Ps =
 {
@@ -41,8 +41,8 @@
         2 +   128 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   112,
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -144,8 +144,8 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   128,
-        2 +   128 * sizeof (short) / sizeof (int) +   144
+        2 +   128 * sizeof (short) / sizeof (int) +   144,
+        2 +   128 * sizeof (short) / sizeof (int) +   160
   },
   {
     0x00000000, 0x00000100, 0x08000000, 0x08000000,
@@ -171,11 +171,15 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00155500,
-    0x00000000, 0x00000000, 0x00000020, 0x00000540,
+    0x00000000, 0x00000000, 0x00000020, 0x00005540,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00AAAAA8, 0x00000000, 0x05000000, 0x10000000,
+    0x00000000, 0x00000154, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x25515500, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_S.h
+++ b/lib/unictype/categ_S.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[34 << 4];
+    /*unsigned*/ int level3[36 << 4];
   }
 u_categ_S =
 {
@@ -29,14 +29,13 @@
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
@@ -47,6 +46,7 @@
         3 +   256 * sizeof (short) / sizeof (int) +   320,
         3 +   256 * sizeof (short) / sizeof (int) +   336,
         3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -59,7 +59,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -103,9 +103,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
        -1,
@@ -146,10 +146,10 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   432,
         3 +   256 * sizeof (short) / sizeof (int) +   448,
         3 +   256 * sizeof (short) / sizeof (int) +   464,
         3 +   256 * sizeof (short) / sizeof (int) +   480,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -253,10 +253,10 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   496,
         3 +   256 * sizeof (short) / sizeof (int) +   512,
+        3 +   256 * sizeof (short) / sizeof (int) +   528,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   528,
+        3 +   256 * sizeof (short) / sizeof (int) +   544,
        -1,
        -1,
        -1,
@@ -269,7 +269,7 @@
        -1,
        -1,
        -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -284,14 +284,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFBFE0,
-    0x00000000, 0x00000000, 0x00000000, 0x00300000,
+    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+    0x00000000, 0x00000000, 0x00000000, 0x00200000,
     0x00000030, 0x00000000, 0x00000000, 0x00400000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000004, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000C800, 0x00000000, 0x00000000, 0x00000000,
+    0x0000C9C0, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x60000200,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00400000,
@@ -303,14 +303,18 @@
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00060000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x02000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
-    0x00000000, 0xC0000000, 0x00009FBF, 0x00000000,
+    0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000001,
@@ -333,7 +337,7 @@
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
     0x00000000, 0x00000000, 0x00040010, 0x1C000000,
     0x00001C00, 0x003FFFFF, 0x00000000, 0x00000000,
-    0xC1D0037B, 0x0C0042AF, 0x00003C1F, 0x00000000,
+    0xC1D0037B, 0x0C0042AF, 0x0000BC1F, 0x00000000,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -344,16 +348,16 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
-    0xFF100000, 0x7FFEFFFF, 0xFFFF079F, 0xFFFF003F,
+    0xFF100000, 0x7FFEFFFF, 0xFFFF179F, 0xFFFF003F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFE000007, 0xFFFFFFFF, 0xF0FFFFFF, 0xCFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000007E0,
@@ -366,7 +370,7 @@
     0x000C0010, 0xC0C00001, 0x00000000, 0x00000000,
     0x18000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFC30000, 0x00000000, 0x0000FFFF, 0x00000000,
+    0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
     0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
     0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -382,7 +386,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000600, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000F00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -402,10 +406,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000004, 0xFF800000, 0x00000000, 0xFE000000,
-    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF03FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0x00001C1F,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00001C1F,
     0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -414,6 +418,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x08000002, 0x08000000,
     0x00200000, 0x00200000, 0x00008000, 0x00008000,
-    0x00000200, 0x00000200, 0x00000008, 0x00000000
+    0x00000200, 0x00000200, 0x00000008, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/categ_Sc.h
+++ b/lib/unictype/categ_Sc.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Sk.h
+++ b/lib/unictype/categ_Sk.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -153,8 +153,8 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFBFE0,
-    0x00000000, 0x00000000, 0x00000000, 0x00300000,
+    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+    0x00000000, 0x00000000, 0x00000000, 0x00200000,
     0x00000030, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -167,7 +167,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000600, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x40000000, 0x00000001, 0x00000000,
--- a/lib/unictype/categ_Sm.h
+++ b/lib/unictype/categ_Sm.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[11 << 4];
+    /*unsigned*/ int level3[12 << 4];
   }
 u_categ_Sm =
 {
@@ -24,6 +24,7 @@
         3 +   256 * sizeof (short) / sizeof (int) +     0,
         3 +   256 * sizeof (short) / sizeof (int) +    16,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
@@ -36,13 +37,12 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    32,
         3 +   256 * sizeof (short) / sizeof (int) +    48,
         3 +   256 * sizeof (short) / sizeof (int) +    64,
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -146,9 +146,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -256,7 +256,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -287,6 +287,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00400000,
+    0x000001C0, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00040010, 0x1C000000,
     0x00001C00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000081F, 0x00000000,
@@ -302,14 +306,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00008000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF079F, 0xFFFF003F,
+    0x00000000, 0x00000000, 0xFFFF179F, 0xFFFF003F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFE000007, 0xFFFFFFFF, 0xF0FFFFFF, 0xCFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0x00001F9F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/categ_So.h
+++ b/lib/unictype/categ_So.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[28 << 4];
+    /*unsigned*/ int level3[30 << 4];
   }
 u_categ_So =
 {
@@ -29,15 +29,14 @@
         3 +   256 * sizeof (short) / sizeof (int) +    64,
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
@@ -47,6 +46,7 @@
         3 +   256 * sizeof (short) / sizeof (int) +   272,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -59,7 +59,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
@@ -103,9 +103,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -147,9 +147,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
         3 +   256 * sizeof (short) / sizeof (int) +   384,
         3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -253,8 +253,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   416,
         3 +   256 * sizeof (short) / sizeof (int) +   432,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -269,7 +269,7 @@
        -1,
        -1,
        -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -299,14 +299,18 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x05F80000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00060000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x02000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
-    0x00000000, 0xC0000000, 0x00009FBF, 0x00000000,
+    0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000001,
@@ -321,7 +325,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC1D0037B, 0x0C0042AF, 0x00003400, 0x00000000,
+    0xC1D0037B, 0x0C0042AF, 0x0000B400, 0x00000000,
     0xF3E00000, 0xFFFFBFB6, 0xFFEB3FFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -332,7 +336,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFF7FFFFF, 0xFFFFFFFD, 0x00FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF7FFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
     0xFF100000, 0x7FFEFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -341,7 +345,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000FFFF, 0x001F0060, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000007E0,
@@ -354,7 +358,7 @@
     0x000C0010, 0xC0C00001, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFC30000, 0x00000000, 0x0000FFFF, 0x00000000,
+    0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
     0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
     0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -382,14 +386,18 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000004, 0xFF800000, 0x00000000, 0xFE000000,
-    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF03FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0x00001C1F,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00001C1F,
     0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/categ_Z.h
+++ b/lib/unictype/categ_Z.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Zl.h
+++ b/lib/unictype/categ_Zl.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Zp.h
+++ b/lib/unictype/categ_Zp.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_Zs.h
+++ b/lib/unictype/categ_Zs.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/categ_of.h
+++ b/lib/unictype/categ_of.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define category_header_0 16
 #define category_header_1 17
 #define category_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[17];
     short level2[5 << 9];
-    unsigned short level3[137 * 40 + 1];
+    unsigned short level3[148 * 40 + 1];
   }
 u_category =
 {
@@ -27,20 +27,20 @@
      2816,  2944,  3072,  3200,  3328,  3456,  3584,  3712,
      3840,  3968,  4096,  4224,  4352,  4480,  4608,  4736,
      4864,  4992,  4992,  4992,  5120,  5248,  5376,  5504,
-     5632,  5760,  5888,  6016,  6144,    -1,  6272,    -1,
-       -1,    -1,  6400,  6528,  6656,  6784,  6912,  7040,
-     7168,  7296,  7424,  7552,  7680,  7680,  7808,  7936,
-     8064,  8192,  8320,  8448,  8576,  8704,  8832,  8960,
-     8320,  8320,  7680,  9088,  7680,  7680,  9216,    -1,
-     9344,  9472,  9600,  9728,  9856,  9984,  8320, 10112,
-    10240, 10368, 10496, 10624, 10752, 10880,  8320,  8320,
+     5632,  5760,  5888,  6016,  6144,    -1,  6272,  6400,
+     6528,    -1,  6656,  6784,  6912,  7040,  7168,  7296,
+     7424,  7552,  7680,  7808,  7936,  7936,  8064,  8192,
+     8320,  8448,  8576,  8704,  8832,  8960,  9088,  9216,
+     8576,  8576,  7936,  9344,  7936,  7936,  9472,    -1,
+     9600,  9728,  9856,  9984, 10112, 10240,  8576, 10368,
+    10496, 10624, 10752, 10880, 11008, 11136,  8576,  8576,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992, 11008,  4992,  4992,  4992,  4992,
+     4992,  4992,  4992, 11264,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
@@ -60,10 +60,10 @@
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992, 11136,
-    11264,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992, 11392,    -1,    -1,    -1,    -1, 11520,    -1,
-    11648,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4992,  4992,  4992,  4992,  4992,  4992,  4992, 11392,
+    11520,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
+     4992, 11648,  4992,  4992, 11776, 11904, 12032, 12160,
+    12288, 12416, 12544,    -1, 12672,    -1,    -1,    -1,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
@@ -74,27 +74,27 @@
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992, 11776,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032,  4992,  4992, 12160, 12288, 12416, 12544,
-     4992,  4992, 12672, 12800, 12928, 13056, 13184, 13312,
-    13440, 13568, 13696, 13824,    -1,    -1, 13952, 14080,
-    14208, 14336,    -1,    -1,    -1,    -1,    -1,    -1,
-    14464,    -1, 14592,    -1, 14720,    -1,    -1,    -1,
+     4992,  4992,  4992,  4992,  4992,  4992,  4992, 12800,
+    12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
+    12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056,  4992,  4992, 13184, 13312, 13440, 13568,
+     4992,  4992, 13696, 13824, 13952, 14080, 14208, 14336,
+    14464, 14592, 14720, 14848,    -1, 14976, 15104, 15232,
+    15360, 15488,    -1,    -1,    -1,    -1,    -1,    -1,
+    15616,    -1, 15744,    -1, 15872,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992,  4992,  4992, 14848,    -1,
-    14976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4992,  4992,  4992,  4992,  4992,  4992, 16000,    -1,
+    16128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -137,15 +137,15 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     8320, 15104, 15232, 15360, 15488,    -1, 15616,    -1,
-    15744, 15872, 16000, 16128, 16256, 16384, 16512, 16640,
+     8576, 16256, 16384, 16512, 16640,    -1, 16768,    -1,
+    16896, 17024, 17152, 17280, 17408, 17536, 17664, 17792,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    17920, 18048,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -190,7 +190,7 @@
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
      4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992, 16768,    -1,    -1,
+     4992,  4992,  4992,  4992,  4992, 18176,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -211,9 +211,9 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992, 16896,    -1,    -1,    -1,
+     4992,  4992,  4992,  4992, 18304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17024,    -1, 17152, 17280,    -1,    -1,    -1,    -1,
+    18432,    -1, 18560, 18688,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -277,70 +277,70 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 12032,
-    12032, 12032, 12032, 12032, 12032, 12032, 12032, 17408
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
+    13056, 13056, 13056, 13056, 13056, 13056, 13056, 18816
   },
   {
     0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
@@ -372,40 +372,40 @@
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x5063, 0xe94a, 0x6318, 0x318c,
     0x18c6, 0x5063, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x8c63, 0x2831,
-    0x94a5, 0x4a52, 0xa0e9, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x94a5, 0x3a52, 0xa0e8, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
-    0xa529, 0x5294, 0x294a, 0xf7bd, 0x694e, 0xbdef, 0x108f, 0xec42,
+    0xa529, 0x5294, 0x294a, 0x8020, 0x2830, 0xbd08, 0x108f, 0xec42,
     0xf7bd, 0x294e, 0x0088, 0x0e80, 0x003a, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x7400, 0x0000, 0x0000, 0x1000, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0xe842, 0x0021, 0x4200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+    0x0042, 0x0021, 0x4200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8421, 0x8200, 0x0104, 0x1080, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
-    0xd420, 0x4a52, 0xe7e9, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+    0xd420, 0x4a52, 0xe729, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
     0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x0400, 0x4010, 0x0100, 0x1004,
     0x0840, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
-    0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x7bd0, 0xbdef,
-    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x001d,
+    0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
+    0x0080, 0x0802, 0x8020, 0x7bd0, 0xbdef, 0xdef7, 0xef7b, 0x001d,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x7de8, 0x18c4, 0x8c63, 0x843d, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x3d08, 0xdeb2, 0xef7b, 0x94bd, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
-    0x4a52, 0xa529, 0x5294, 0x2c4a, 0x94b1, 0x4a58, 0xbd2c, 0xdef7,
+    0x4a52, 0xa529, 0x5294, 0x2b0a, 0x94b1, 0x4a58, 0xbd2c, 0xdef7,
     0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0xde90, 0xef7b, 0x9084, 0x7b18, 0xbdef, 0xdef7, 0xef7b,
-    0x6b5a, 0x7bdd, 0xbdef, 0x19f7, 0xad63, 0x94a5, 0x4a52, 0xbdef,
-    0xd8f7, 0x8c7b, 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0xde90, 0xef7b, 0x1083, 0x0842, 0x8421, 0x5290,
+    0x6b5a, 0xbbdd, 0x3294, 0x19c6, 0xad63, 0x94a5, 0x4a52, 0xa529,
+    0xd894, 0x8c7b, 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1083, 0x0842, 0x8421, 0x5290,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xe94a, 0x2108, 0x1084,
     0x0842, 0x18c5, 0x2123, 0x1085, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
@@ -417,7 +417,7 @@
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0xde94,
     0x2109, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0x4210, 0xef48, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x4842, 0xa529, 0x5294, 0x294a, 0xf485,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x2108, 0x1084, 0x0842, 0x4211,
@@ -427,7 +427,7 @@
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x4a52, 0xc529, 0x6318,
     0xef4a, 0x94a4, 0x7a52, 0x84ef, 0x4210, 0x2108, 0x9484, 0x2312,
-    0x0842, 0x8421, 0x4210, 0xf7b1, 0x7bde, 0xbdef, 0x4277, 0x2108,
+    0x0842, 0x8421, 0x4210, 0x9071, 0x7bde, 0xbdef, 0x4277, 0x2108,
     0x18bd, 0x09d3, 0x8421, 0x4210, 0x277a, 0x77a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x93a4,
     0x3bde, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x7a52, 0xa637, 0x6377,
@@ -436,8 +436,8 @@
     0x14bd, 0x09d3, 0x8421, 0xde90, 0x277b, 0x77a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
     0x09d2, 0x84e9, 0x5ef4, 0x31ba, 0x94a6, 0x7bde, 0xa52f, 0x52f7,
-    0xef4a, 0xf7bd, 0x7bde, 0x9def, 0x4210, 0xe93a, 0xf7bd, 0x3bde,
-    0x0842, 0x8421, 0x4210, 0x10a5, 0x7a42, 0xbdef, 0xdef7, 0xef7b,
+    0xef4a, 0xf4bd, 0x7bde, 0x9def, 0x4210, 0xe93a, 0xf7bd, 0x3bde,
+    0x0842, 0x8421, 0x4210, 0x10a5, 0x4a42, 0xbdef, 0xdef7, 0xef7b,
     0x14bd, 0x09d3, 0x8421, 0x4210, 0x2748, 0x7484, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
     0x09d2, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x4a52, 0xc52f, 0x6374,
@@ -445,19 +445,19 @@
     0x0842, 0x8421, 0x4210, 0xf67d, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x18bd, 0x09d3, 0x8421, 0x4210, 0x277a, 0x77a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
-    0x09d2, 0x8421, 0x5ef4, 0x2988, 0x94a6, 0x7bd2, 0xa637, 0x6377,
-    0xef4a, 0xf7bd, 0x7bde, 0xbd31, 0x4ef7, 0x2748, 0xf484, 0x3bde,
+    0x09d2, 0x8421, 0x5ef4, 0x2988, 0x94a6, 0x7a52, 0xa637, 0x6377,
+    0xef4a, 0xf7bd, 0x7bde, 0xbd31, 0x4ef7, 0x2748, 0x9484, 0x3bd2,
     0x0842, 0x8421, 0x4210, 0xf495, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x17bd, 0x09d2, 0x8421, 0xde90, 0x213b, 0x13a4, 0x4842, 0x9def,
     0x4e90, 0x213a, 0x77bd, 0x7a42, 0x84ef, 0xde90, 0x213b, 0x1084,
     0x0842, 0x8421, 0xdef4, 0x31bb, 0x98c5, 0xbbde, 0xa631, 0x631b,
-    0xef4a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0xf7bd, 0x3bde,
+    0xef4a, 0xf7a4, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0xf7bd, 0x3bde,
     0x0842, 0x8421, 0x4210, 0xa94a, 0x6b5a, 0x75ad, 0xded6, 0xef7b,
     0x18dd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
-    0x09d2, 0x8421, 0xdef4, 0x297b, 0x18c5, 0x7a63, 0xa529, 0x5297,
-    0xef4a, 0xf7bd, 0x4bde, 0xbde9, 0xdef7, 0xef7b, 0xf484, 0x3bde,
-    0x0842, 0x8421, 0x4210, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x09d2, 0x8421, 0xdef4, 0x2949, 0x18c5, 0x7a63, 0xa529, 0x5297,
+    0xef4a, 0xf7bd, 0x4bde, 0x84e9, 0xdef4, 0xef7b, 0x9484, 0x3bd2,
+    0x0842, 0x8421, 0x4210, 0xf7bd, 0x7bde, 0x4aef, 0xa529, 0xaa94,
     0x1bbd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
     0x09d2, 0x8421, 0x5ef4, 0x2988, 0x18c6, 0x7a63, 0xa631, 0x531b,
@@ -465,9 +465,9 @@
     0x0842, 0x8421, 0x4210, 0xd6bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1bbd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
-    0x0842, 0x8421, 0xdef4, 0x31bb, 0x94a6, 0xbbd2, 0xa631, 0x631b,
-    0xef4a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0xf484, 0x3bde,
-    0x0842, 0x8421, 0x4210, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x0842, 0x8421, 0xdef4, 0x3189, 0x94a6, 0xba52, 0xa631, 0x631b,
+    0xef4a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0x9484, 0x3bd2,
+    0x0842, 0x8421, 0x4210, 0x294a, 0x54a5, 0xbdef, 0x4212, 0x2108,
     0x1bbd, 0x09d3, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
     0x4213, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x7484,
     0x0842, 0x8421, 0xd210, 0xef49, 0x1084, 0x0842, 0xbde9, 0xde97,
@@ -487,19 +487,19 @@
     0x5ad4, 0xad6b, 0x2108, 0x1084, 0x0842, 0xa529, 0x5294, 0x294a,
     0x4b55, 0xb52d, 0xd734, 0x319c, 0x1084, 0x0842, 0x9d21, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0xde90, 0xef7b, 0x94bd, 0x4a52, 0xa529, 0x5294, 0x314a,
+    0x8421, 0x4210, 0xef7a, 0x94bd, 0x4a52, 0xa529, 0x5294, 0x314a,
     0x94a5, 0x6252, 0x8429, 0xd210, 0xef7b, 0x94a5, 0x4a52, 0xbd29,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0xad7a, 0xd6b5, 0x6b5a, 0xb5a9, 0x5ad6,
-    0xaf7b, 0xf631, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xad7b, 0xc631, 0x7b18, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x7484, 0x0842, 0x9d21, 0x6e90, 0x294a, 0x94c5,
-    0x7bde, 0xa629, 0xdef4, 0xef7b, 0x2108, 0x1084, 0x0842, 0x18c5,
-    0x8c63, 0x1084, 0x8842, 0xa531, 0xdef4, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
-    0xdef7, 0xef7b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x6310, 0x294a, 0x94c5,
+    0x4a52, 0xa629, 0x6314, 0x214a, 0x2108, 0x1084, 0x0842, 0x18c5,
+    0x8c63, 0x1084, 0x8842, 0xa531, 0x4210, 0x2948, 0x1885, 0x0863,
+    0xc631, 0x6318, 0x210c, 0x94a4, 0x0852, 0x8421, 0x4210, 0x2108,
+    0x1484, 0x4a63, 0xc631, 0x6318, 0x310a, 0x2108, 0x1084, 0x0842,
+    0xdef5, 0xad7b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0xbdef, 0xdef7,
     0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x3890, 0xef7a,
@@ -569,7 +569,7 @@
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbd21, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xdef4, 0xef7b, 0xf7bd,
+    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xde90, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
@@ -593,6 +593,16 @@
     0x4c52, 0xa529, 0x5314, 0x318c, 0x14c6, 0x0863, 0x8421, 0xd210,
     0xef7b, 0x2108, 0x1084, 0x0842, 0x18c5, 0x8c63, 0xd6b1, 0x6b5a,
     0xb5ad, 0x52d6, 0x294a, 0x94a5, 0x6b52, 0xb5ad, 0x5ad6, 0xef7b,
+    0x18a5, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x94c4, 0x8a52, 0xa531, 0xde98, 0x213b, 0x2108,
+    0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x8c62, 0xc631, 0x5318, 0x294a, 0x94a5,
+    0x4c62, 0xbd29, 0x18f7, 0x8c63, 0x2108, 0x1084, 0x0842, 0xdef5,
+    0x2109, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x6321, 0x318c, 0x8c46,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x3084, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
@@ -600,19 +610,19 @@
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2308, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x3184, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
-    0xc631, 0x6318, 0x318c, 0x18c6, 0x94a5, 0x4a52, 0xa529, 0xde94,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0x297b,
+    0xc631, 0x6318, 0x318c, 0x18c6, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0x297b,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
     0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
     0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x4200, 0x2108,
-    0xd084, 0xef7b, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
+    0x1084, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
     0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
-    0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0xdef4, 0xef7b,
+    0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
     0x8421, 0x4210, 0x0008, 0x0000, 0x0000, 0x8421, 0x4210, 0x00ef,
     0x0000, 0xef40, 0x8421, 0x4210, 0x0008, 0x0000, 0x0000, 0x8421,
     0x4210, 0x0008, 0x0000, 0x0000, 0x8421, 0x4210, 0x00ef, 0x0000,
@@ -626,19 +636,19 @@
     0x5ad6, 0xad6b, 0xd6b5, 0xad5a, 0xd6b5, 0x318c, 0x58c6, 0x0f8c,
     0xf7b6, 0x7b60, 0xc631, 0x6318, 0x178c, 0xad6b, 0xb6b5, 0xc631,
     0x6318, 0xf18c, 0x18c1, 0x5c63, 0xc62b, 0x9b28, 0x318b, 0x18c6,
-    0x8c63, 0xca31, 0x62b8, 0x318c, 0x18c6, 0xb463, 0x6b5a, 0x7bdd,
+    0x8c63, 0xca31, 0x62b8, 0x318c, 0x18c6, 0xb463, 0x6b5a, 0x7bad,
     0xbdef, 0xad6b, 0xd6b5, 0xf42a, 0x94ae, 0x4a52, 0x2949, 0x0b9b,
     0x294a, 0x94a5, 0x4a52, 0x2949, 0xeb9b, 0x8c63, 0x7a31, 0xbdef,
     0xdef7, 0xef7b, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
     0x6739, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x39ce, 0x9ca7, 0x4a73,
-    0xa529, 0x5294, 0x294a, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xa529, 0x5294, 0x294a, 0xf7a5, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x82b5, 0x6b5a, 0xb505, 0x0006, 0x0840, 0x8000, 0x4150, 0x15ad,
     0x0000, 0xad40, 0xd6b5, 0x2a0a, 0xa0a8, 0x0002, 0x0d40, 0x0000,
     0x0810, 0x2421, 0x1ad4, 0x0002, 0x4a52, 0x4129, 0x2108, 0x5954,
-    0xe86b, 0x77bd, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xa529, 0x5294,
+    0xa86b, 0x77bd, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
-    0x2529, 0x7a10, 0xbdef, 0xdef7, 0xef7b, 0x4a52, 0x6b29, 0xb5ad,
+    0x2529, 0x5210, 0xa94a, 0xdef7, 0xef7b, 0x4a52, 0x6b29, 0xb5ad,
     0x594a, 0xad6b, 0x56b2, 0xab59, 0xb5ac, 0x5ad6, 0xacab, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0x94ab, 0xcab5, 0x6b2a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
@@ -684,8 +694,8 @@
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0x956b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
-    0x5ad6, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0x5ad6, 0xef6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xef7b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0xd6bd, 0x7b5a, 0xb5ad, 0x5ef6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
@@ -695,24 +705,24 @@
     0xcdad, 0xd735, 0x735c, 0x35cd, 0x9cd7, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x7b55, 0xb5ef,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6bd,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0x4a52, 0x9b29, 0x5293, 0xdeca,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0x4a52, 0x9b29, 0x5293, 0x2eca,
     0xef7b, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6529,
-    0xcd73, 0xd735, 0xef7b, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+    0xcd73, 0xd735, 0x735c, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0xca52, 0x9ae6, 0xae6b, 0xe6b9, 0x6b9a, 0xb9ae, 0x9ae6, 0x4e6b,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x94a5, 0x4a52, 0xa529, 0xcd94, 0x2735, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd94a, 0x949c,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
-    0xded6, 0xef7b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6b29, 0x5295, 0x294a,
+    0xef7b, 0xd6b5, 0x7b5a, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe800, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0xe842, 0x0020, 0x4200,
-    0x0100, 0x1004, 0xef7a, 0xf7bd, 0x401e, 0xbd08, 0xdef7, 0xef7b,
+    0x0100, 0x1004, 0x0000, 0x803d, 0x4010, 0x2108, 0x1084, 0xef46,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
     0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
@@ -726,10 +736,10 @@
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
     0xdef7, 0xef7b, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x1084,
     0x0842, 0x84e9, 0x4210, 0xe908, 0x1084, 0x0842, 0x84e9, 0x4210,
-    0xe908, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0x3e31, 0x60f8, 0xf18c, 0xf8c1, 0x8c60, 0xc631, 0x6318, 0xbd64,
-    0xfef7, 0xef60, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0xe908, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x3e31, 0x60f8, 0xf18c, 0xf8c1, 0x8c60, 0xc631, 0x6318, 0x3164,
+    0xf8b2, 0x8c60, 0x360f, 0x5cd7, 0xcd73, 0x18c5, 0x1c63, 0xf7b1,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
@@ -754,14 +764,14 @@
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x3890, 0x20c6,
     0xf7bd, 0x09de, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef7a, 0x109d,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef48, 0x109d,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0xe908, 0x2ab5, 0x54a5, 0xb5ad,
     0x5ad6, 0xad6b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0xbd21, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
-    0xad6b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda,
     0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xed6b, 0x294a, 0x94a5, 0x4a52, 0x5ad5, 0xad6b, 0xd6b5,
@@ -780,7 +790,7 @@
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0xd210, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0642, 0x8421,
@@ -793,16 +803,46 @@
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x631d,
-    0xde8c, 0xef7b, 0xf694, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x1084, 0x0842, 0x8421, 0x3210, 0x8c62, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x2108, 0x1084, 0x0842, 0xd211, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x8020, 0x0200, 0x2008, 0x0080,
+    0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x83bd, 0x0200,
+    0x2008, 0x0080, 0x2902, 0x9ce7, 0x7bd8, 0xbdef, 0x5ef7, 0x1c4a,
+    0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0xbd08,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0x1884, 0x4842, 0x8421, 0x4290, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x631d,
+    0x318c, 0x18c6, 0x8294, 0x0200, 0x2008, 0x0080, 0x0802, 0x8021,
+    0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
+    0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
+    0x2008, 0x0080, 0x0802, 0x8423, 0x4210, 0x0108, 0x1004, 0x0800,
+    0x8020, 0x0200, 0x8308, 0x1052, 0xef7a, 0xf7bd, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x4277, 0x2108,
+    0x1484, 0x4842, 0x8421, 0x4290, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x4a63, 0xb531, 0xdad6, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x6312, 0xbd8c, 0xdef7, 0xef7b,
+    0x10c6, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x8c62, 0xc631, 0x6318, 0x318c, 0x18c6, 0x7a53, 0xbdef, 0xdef7,
+    0x8c7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x4842, 0xa529, 0x5294, 0x8c4a, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa529, 0x5294,
+    0x294a, 0x18a5, 0x7bd3, 0xbdef, 0xdef7, 0x8f7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x5294, 0x314a, 0x14a6,
+    0x4a63, 0xbde9, 0xdef7, 0xef7b, 0x9084, 0x0842, 0x8421, 0x5210,
+    0xef4c, 0x2108, 0x1084, 0x0842, 0x1ef5, 0x8c63, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
@@ -849,7 +889,7 @@
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x3210, 0xef6b,
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0xc631, 0x6318, 0x2e6c,
-    0xdef6, 0xef7b, 0x94a5, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0xb191,
+    0xdef6, 0xef7b, 0x94a5, 0x4a52, 0xbde9, 0xdef7, 0xef7b, 0xb191,
     0x9ab5, 0xae6b, 0xe6b9, 0x6b9a, 0xb9ae, 0x62e6, 0x2e6c, 0x18c6,
     0x5ad7, 0xc631, 0x631e, 0xac8c, 0xe6b9, 0x8b9a, 0x4a31, 0xa526,
     0x71ec, 0xd8c6, 0xef7b, 0x1084, 0x3a42, 0x8421, 0x4210, 0x2108,
@@ -883,10 +923,15 @@
     0x7bd5, 0xb5af, 0x5ad6, 0xad6b, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x9494, 0xaa52, 0x5ad6, 0xad6b,
-    0xd6b5, 0x6b5a, 0xb5ad, 0xdeaa, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
-    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0xd6b5, 0x6b5a, 0xb5ad, 0xdeaa, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0xdad6, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xef4b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0xef7a, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0xf7a4, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0xe908, 0x294a, 0x7bd5, 0xbdef, 0xdef7, 0xef7b, 0x1084,
@@ -914,8 +959,8 @@
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x8842, 0x4a52,
-    0xdef5, 0x8f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xdef5, 0x8f7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0xdef4, 0x8f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x94a4, 0x4bd2, 0xbde9, 0x5ef7, 0x294a, 0x1084, 0x09d2, 0x9d21,
@@ -939,7 +984,7 @@
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdef, 0xdef7, 0xef7b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
-    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0x5ad7, 0xad6b, 0xd6b5,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0x5ad6, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x8d5a,
     0xa529, 0x5ad4, 0x318d, 0x18c6, 0xb5ad, 0x5ad6, 0x52eb, 0x294a,
@@ -998,6 +1043,16 @@
     0x4210, 0x2108, 0x1084, 0x0842, 0x0421, 0x4219, 0x2108, 0xd080,
     0x423b, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdad6, 0xef7b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
--- a/lib/unictype/combining.h
+++ b/lib/unictype/combining.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Combining class of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define combclass_header_0 16
 #define combclass_header_1 2
 #define combclass_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[35 << 7];
+    unsigned char level3[43 << 7];
   }
 u_combclass =
 {
@@ -21,15 +21,15 @@
        -1,   128,    -1,   256,   384,   512,   640,   768,
        -1,    -1,   896,  1024,  1024,  1024,  1024,  1152,
      1280,  1024,  1152,  1408,  1536,  1664,  1792,  1920,
-     2048,    -1,    -1,    -1,    -1,    -1,  2176,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  2304,  2432,
-       -1,  2560,  2688,    -1,  2816,    -1,  2944,    -1,
-       -1,    -1,    -1,  3072,    -1,    -1,    -1,    -1,
-       -1,  3200,    -1,    -1,    -1,    -1,    -1,    -1,
+     2048,  2176,    -1,    -1,    -1,    -1,  2304,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  2432,  2560,
+       -1,  2688,  2816,    -1,  2944,    -1,  3072,  3200,
+     3328,    -1,    -1,  3456,    -1,    -1,    -1,    -1,
+       -1,  3584,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     3328,  3456,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,  3712,    -1,    -1,    -1,    -1,
+     3840,  3968,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -58,8 +58,8 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     3584,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  4096,    -1,    -1,    -1,
+     4224,  4352,  4480,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -79,11 +79,11 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  3712,    -1,
-       -1,    -1,    -1,    -1,  3840,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  4608,    -1,
+       -1,    -1,    -1,    -1,  4736,    -1,    -1,    -1,
+       -1,    -1,    -1,  4864,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  3968,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  4992,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -133,7 +133,7 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  4096,  4224,  4352,    -1,    -1,    -1,
+       -1,    -1,  5120,  5248,  5376,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -163,7 +163,7 @@
     230, 230, 230, 230, 230, 230, 230, 230,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 230, 230, 230, 230,   0,
+      0,   0,   0, 230, 230, 230, 230, 230,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -197,8 +197,8 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    230, 230, 230, 230, 230, 230,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230, 230, 230, 230, 230, 230, 230,
+     30,  31,  32,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -410,7 +410,23 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   7,
-      0,   9,   0,   0,   0,   0,   0,   0,
+      0,   9,   9,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 220,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -536,14 +552,46 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   9,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   7,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
     230, 230, 220, 230, 230, 230, 230, 230,
-    230, 230, 220,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230, 220, 230, 230, 234, 214, 220,
+    202, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0, 230, 220,
@@ -561,6 +609,13 @@
       1,   1,   1, 230, 230,   0,   0,   0,
       0, 230,   0,   0,   0,   1,   1, 230,
     220, 230,   1,   1, 220, 220, 220, 220,
+    230,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -568,6 +623,15 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230, 230,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0, 218, 228, 232, 222, 224, 224,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -595,6 +659,22 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 230,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 230, 230,   0,   0,
       0,   0,   0,   0,   0,   0,   9,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -614,6 +694,38 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   9,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0, 220, 220, 220,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   9,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,  26,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -631,7 +743,9 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    230, 230, 230, 230,   0,   0,   0,   0,
+    230, 230, 230, 230, 230, 230, 230,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -644,6 +758,20 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 220,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0, 220,   0, 230,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
--- a/lib/unictype/ctype_alnum.h
+++ b/lib/unictype/ctype_alnum.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[44 << 4];
   }
 u_is_alnum =
 {
@@ -45,91 +45,91 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
         4 +   384 * sizeof (short) / sizeof (int) +   400,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   416,
+        4 +   384 * sizeof (short) / sizeof (int) +   432,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -146,17 +146,17 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   432,
-        4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
+       -1,
        -1,
        -1,
        -1,
@@ -166,9 +166,9 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -278,90 +278,90 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000020, 0x3C000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FF, 0xFFFEC3FF,
+    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF800FFC3,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x0000FFC0,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x0000FFC3,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x0000FFC3,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
-    0x00000001, 0x000003FF, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F03FF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
+    0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,36 +457,40 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
     0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -499,16 +503,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -537,7 +545,7 @@
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -546,7 +554,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/ctype_alpha.h
+++ b/lib/unictype/ctype_alpha.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[44 << 4];
   }
 u_is_alpha =
 {
@@ -45,91 +45,91 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
         4 +   384 * sizeof (short) / sizeof (int) +   400,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   416,
+        4 +   384 * sizeof (short) / sizeof (int) +   432,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -146,17 +146,17 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   432,
-        4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
+       -1,
        -1,
        -1,
        -1,
@@ -166,9 +166,9 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -278,90 +278,90 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000020, 0x3C000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FF, 0xFFFEC3FF,
+    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF800FFC3,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x0000FFC0,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x0000FFC3,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x0000FFC3,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
-    0x00000001, 0x000003FF, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F03FF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
+    0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,36 +457,40 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
     0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -499,16 +503,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -537,7 +545,7 @@
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -546,7 +554,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/ctype_blank.h
+++ b/lib/unictype/ctype_blank.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/ctype_cntrl.h
+++ b/lib/unictype/ctype_cntrl.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/ctype_digit.h
+++ b/lib/unictype/ctype_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/ctype_graph.h
+++ b/lib/unictype/ctype_graph.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[50 << 4];
+    /*unsigned*/ int level3[52 << 4];
   }
 u_is_graph =
 {
@@ -121,7 +121,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   448,
        18 +   640 * sizeof (short) / sizeof (int) +   464,
        18 +   640 * sizeof (short) / sizeof (int) +   480,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
@@ -143,7 +143,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -161,15 +161,15 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   528,
        18 +   640 * sizeof (short) / sizeof (int) +   544,
        18 +   640 * sizeof (short) / sizeof (int) +   560,
        18 +   640 * sizeof (short) / sizeof (int) +   576,
        18 +   640 * sizeof (short) / sizeof (int) +   592,
+       18 +   640 * sizeof (short) / sizeof (int) +   608,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   608,
        18 +   640 * sizeof (short) / sizeof (int) +   624,
+       18 +   640 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -181,8 +181,8 @@
        -1,
        -1,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   640,
        18 +   640 * sizeof (short) / sizeof (int) +   656,
+       18 +   640 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -268,10 +268,10 @@
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   672,
        18 +   640 * sizeof (short) / sizeof (int) +   688,
        18 +   640 * sizeof (short) / sizeof (int) +   704,
        18 +   640 * sizeof (short) / sizeof (int) +   720,
+       18 +   640 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -284,7 +284,7 @@
        -1,
        -1,
        -1,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -375,7 +375,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   736,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
        -1,
        -1,
        -1,
@@ -417,10 +417,10 @@
        -1,
        -1,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -675,7 +675,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   784
+       18 +   640 * sizeof (short) / sizeof (int) +   816
   },
   {
     0x00000000, 0xFFFFFFFE, 0xFFFFFFFF, 0x7FFFFFFF,
@@ -684,34 +684,34 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7C30FFFF,
-    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7CFFFFFF,
+    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFF7F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
     0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
-    0xC83FF80F, 0x07FFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0x00003FFF,
+    0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF801FFFF,
+    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
-    0xFFF987EE, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
+    0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0398F, 0x0003FFC3,
-    0xD63DC7EC, 0xC3FFC718, 0x00803DC7, 0x07FFFFC0,
-    0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+    0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
+    0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
-    0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
+    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
     0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE07FF,
-    0xFEFF0FFF, 0xDFFFFFFF, 0x00039FFF, 0x00000000,
-    0xFFFFFFFF, 0x03C7F6FB, 0x03FFFFFF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
+    0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -727,25 +727,25 @@
     0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
     0x03FF3FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
     0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF, 0xC0000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
-    0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0xFFF3FC0F,
-    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0000FFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF87FFF, 0xFFFFFFFF,
-    0xFFFF001F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0xFFF3FC1F,
+    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -755,29 +755,29 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF07FF, 0xFFFF0FFF,
+    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
-    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0x0000FFFF, 0xFFFF0000,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
     0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -789,16 +789,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07FFFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -814,16 +818,16 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
     0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x3FFF0000,
-    0x03FFFFFF, 0xFFFF000F, 0xFFF7FFFF, 0xFFDF0F7F,
+    0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0xFFDF0F7F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x9FFFFFFF,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x3E007F7F,
     0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
     0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -832,7 +836,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -848,7 +852,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -862,6 +866,10 @@
     0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/ctype_lower.h
+++ b/lib/unictype/ctype_lower.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[11 << 4];
   }
 u_is_lower =
 {
@@ -104,6 +104,7 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -147,11 +148,10 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -283,20 +283,20 @@
     0x00000000, 0x00200000, 0x80000000, 0xFF7FFFFF,
     0xAAAAAAAA, 0x54AAAAAA, 0xAAAAA955, 0xD4AAAAAA,
     0x46241129, 0xA251212A, 0xB5555B60, 0xAA2CAAAA,
-    0xAAAAAAAA, 0x100AAAA8, 0x0AD8AA84, 0x20248B09,
+    0xAAAAAAAA, 0x100AAAA8, 0x0ADBAA84, 0x20268B09,
     0x00041F09, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000020, 0x38000000,
-    0x00000000, 0xFFFEF000, 0xAA637FFF, 0x0927AAAA,
+    0x00000000, 0x00000000, 0x00000020, 0x388A0000,
+    0x00000000, 0xFFFEF000, 0xAAE37FFF, 0x0927AAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0x000AAAAA, 0x00000000, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
     0x0000007F, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x20000000,
+    0x00000000, 0x00000000, 0x00000000, 0x22000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
-    0x082AAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x02AAAAAA,
+    0x082AAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
     0x003F00FF, 0x00FF00FF, 0x00AA003F, 0x3FFF00FF,
     0x00FF00FF, 0x400B00FF, 0x00030008, 0x00080023,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -307,10 +307,14 @@
     0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00401562,
+    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00481562,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000000A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xAAA8AAA8, 0xAAAAAAAA, 0x9400AAAA,
+    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
--- a/lib/unictype/ctype_print.h
+++ b/lib/unictype/ctype_print.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[50 << 4];
+    /*unsigned*/ int level3[52 << 4];
   }
 u_is_print =
 {
@@ -121,7 +121,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   448,
        18 +   640 * sizeof (short) / sizeof (int) +   464,
        18 +   640 * sizeof (short) / sizeof (int) +   480,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
@@ -143,7 +143,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -161,15 +161,15 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   528,
        18 +   640 * sizeof (short) / sizeof (int) +   544,
        18 +   640 * sizeof (short) / sizeof (int) +   560,
        18 +   640 * sizeof (short) / sizeof (int) +   576,
        18 +   640 * sizeof (short) / sizeof (int) +   592,
+       18 +   640 * sizeof (short) / sizeof (int) +   608,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   608,
        18 +   640 * sizeof (short) / sizeof (int) +   624,
+       18 +   640 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -181,8 +181,8 @@
        -1,
        -1,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   640,
        18 +   640 * sizeof (short) / sizeof (int) +   656,
+       18 +   640 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -268,10 +268,10 @@
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   672,
        18 +   640 * sizeof (short) / sizeof (int) +   688,
        18 +   640 * sizeof (short) / sizeof (int) +   704,
        18 +   640 * sizeof (short) / sizeof (int) +   720,
+       18 +   640 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -284,7 +284,7 @@
        -1,
        -1,
        -1,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -375,7 +375,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   736,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
        -1,
        -1,
        -1,
@@ -417,10 +417,10 @@
        -1,
        -1,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -675,7 +675,7 @@
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   784
+       18 +   640 * sizeof (short) / sizeof (int) +   816
   },
   {
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
@@ -684,34 +684,34 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7C30FFFF,
-    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7CFFFFFF,
+    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFF7F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
     0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
-    0xC83FF80F, 0x07FFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0x00003FFF,
+    0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF801FFFF,
+    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
-    0xFFF987EE, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
+    0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0398F, 0x0003FFC3,
-    0xD63DC7EC, 0xC3FFC718, 0x00803DC7, 0x07FFFFC0,
-    0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+    0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
+    0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
-    0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
+    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
     0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE07FF,
-    0xFEFF0FFF, 0xDFFFFFFF, 0x00039FFF, 0x00000000,
-    0xFFFFFFFF, 0x03C7F6FB, 0x03FFFFFF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
+    0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -727,25 +727,25 @@
     0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
     0x03FF7FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
     0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF, 0xC0000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
-    0xFFFFFFFF, 0xFFFFFCFF, 0xFFFFFFFF, 0xFFF3FC0F,
-    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0000FFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF87FFF, 0xFFFFFFFF,
-    0xFFFF001F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFCFF, 0xFFFFFFFF, 0xFFF3FC1F,
+    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -755,29 +755,29 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF07FF, 0xFFFF0FFF,
+    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
-    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0x0000FFFF, 0xFFFF0000,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
     0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -789,16 +789,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07FFFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -814,16 +818,16 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
     0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x3FFF0000,
-    0x03FFFFFF, 0xFFFF000F, 0xFFF7FFFF, 0xFFDF0F7F,
+    0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0xFFDF0F7F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x9FFFFFFF,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x3E007F7F,
     0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
     0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -832,7 +836,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -848,7 +852,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -862,6 +866,10 @@
     0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/ctype_punct.h
+++ b/lib/unictype/ctype_punct.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[4 << 7];
-    /*unsigned*/ int level3[43 << 4];
+    /*unsigned*/ int level3[45 << 4];
   }
 u_is_punct =
 {
@@ -121,7 +121,7 @@
        18 +   512 * sizeof (short) / sizeof (int) +   416,
        18 +   512 * sizeof (short) / sizeof (int) +   432,
        18 +   512 * sizeof (short) / sizeof (int) +   448,
-       -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -160,16 +160,16 @@
        18 +   512 * sizeof (short) / sizeof (int) +   304,
        18 +   512 * sizeof (short) / sizeof (int) +   304,
        18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   464,
        18 +   512 * sizeof (short) / sizeof (int) +   480,
        18 +   512 * sizeof (short) / sizeof (int) +   496,
        18 +   512 * sizeof (short) / sizeof (int) +   512,
        18 +   512 * sizeof (short) / sizeof (int) +   528,
        18 +   512 * sizeof (short) / sizeof (int) +   544,
+       18 +   512 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   560,
        18 +   512 * sizeof (short) / sizeof (int) +   576,
+       18 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -182,7 +182,7 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   592,
+       18 +   512 * sizeof (short) / sizeof (int) +   608,
        -1,
        -1,
        -1,
@@ -268,10 +268,10 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   608,
        18 +   512 * sizeof (short) / sizeof (int) +   624,
+       18 +   512 * sizeof (short) / sizeof (int) +   640,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   640,
+       18 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -284,6 +284,7 @@
        -1,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -291,8 +292,7 @@
        -1,
        -1,
        -1,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   656,
+       18 +   512 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
        -1,
@@ -547,7 +547,7 @@
        18 +   512 * sizeof (short) / sizeof (int) +   304,
        18 +   512 * sizeof (short) / sizeof (int) +   304,
        18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   672
+       18 +   512 * sizeof (short) / sizeof (int) +   704
   },
   {
     0x00000000, 0xFC00FFFE, 0xF8000001, 0x78000001,
@@ -555,14 +555,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFBFE0,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFDF, 0x4030FFFF,
+    0x00000000, 0x00000000, 0xFFFC003C, 0xFFFFAFE0,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFDF, 0x4020FFFF,
     0x000000B0, 0x00000000, 0x00000000, 0x00400000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000037C, 0x00000000, 0x00000000, 0x00000000,
+    0x000003FC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000000,
     0xFFFE0600, 0xFFFFFFFF, 0x000000FF, 0x00180000,
-    0xC83FF80F, 0x00000000, 0x7FFFF800, 0x00013C00,
+    0xCFFFFFCF, 0x00000000, 0x7FFFF800, 0x00013C00,
     0x00000000, 0x00000000, 0xFFD00000, 0x60003F9F,
     0x0002BFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x03CFF800,
@@ -570,20 +570,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000E, 0xD0000000, 0x001E3FFF, 0x0001003C,
     0x0000000E, 0xD0000000, 0x0080399F, 0x07FC000C,
-    0x0000000E, 0xD0000000, 0x00003987, 0x00030000,
+    0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0002000C,
-    0x0000000E, 0xD0000000, 0x00C0398F, 0x00010000,
+    0x0000000E, 0xD0000000, 0x00C0399F, 0x0001000C,
     0x00000004, 0xC0000000, 0x00803DC7, 0x07FF0000,
-    0x0000000E, 0xC0000000, 0x00603DDF, 0x00000000,
+    0x0000000E, 0xC0000000, 0x00603DDF, 0xFF00000C,
     0x0000000C, 0xD0000000, 0x00603DDF, 0x0006000C,
-    0x0000000C, 0xC0000000, 0x00803DCF, 0x00000000,
+    0x0000000C, 0xC0000000, 0x00803DDF, 0x023F000C,
     0x0000000C, 0x00000000, 0xFF5F8400, 0x001C0000,
     0x00000000, 0x80008000, 0x0C008040, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0xFFFFFFFE, 0xFFFFFC00, 0x00000000, 0xFFFE0000,
-    0xFEFF00FF, 0xDFFFFFFF, 0x00039FFF, 0x00000000,
-    0x00000000, 0x03C7F000, 0x03C0FC00, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x08000000,
+    0xFEFF00FF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0x00000000, 0x7FFFF800, 0xC3C0FC00, 0x001E3F9D,
+    0xC000BFFC, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -601,18 +601,18 @@
     0xCF800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0xFC00001F, 0x1FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000000, 0xF8FFFFF0, 0x00000000, 0xC0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
-    0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0x7FF1FC0F,
-    0x00007FFF, 0x003FFFFF, 0xFFFF0000, 0x0000FFFF,
-    0xC1D0037B, 0x0C0040AF, 0xFFF83C1F, 0x00000000,
+    0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0x7FF1FC1F,
+    0x00007FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
+    0xC1D0037B, 0x0C0040AF, 0xFFF8BC1F, 0x00000000,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -623,29 +623,29 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF07FF, 0xFFFF0FFF,
+    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFF1E, 0xE0C1FC01, 0x00000000, 0x00000000,
     0x1E000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFF0000, 0x00000000, 0x0000FFFF, 0x00000000,
+    0xFFFF0000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
     0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -658,11 +658,15 @@
     0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x700F8000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
+    0x00000600, 0x00000000, 0x00000000, 0x00000000,
+    0x00000844, 0x00000FF8, 0x00000000, 0x00F00000,
+    0x00000003, 0xFFF00000, 0x0000C01F, 0x00000000,
+    0x00000000, 0x0000FFC0, 0x800FFF80, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000844, 0x00000FF8, 0x00000000, 0x00F00000,
+    0x00000000, 0x007FFE00, 0xF0003008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -678,21 +682,21 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xC0000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30000000,
-    0x03FFFFFF, 0xFFFF000F, 0xFFF7FFFF, 0x00000F7F,
+    0x03FFFFFF, 0xFFFF007F, 0xFFF7FFFF, 0x00000F7F,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0xFC00FFFE, 0xF8000001, 0xF8000001, 0x0000003F,
     0x00000000, 0x00000000, 0x00000000, 0x3E007F7F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFF87, 0xFF8FFFFF, 0x00000000, 0xFFE00000,
-    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000000F, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83C00000, 0x00000000, 0x00000000, 0x00000000,
+    0x83C00000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000F06E, 0x87000000, 0x01FF00FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -704,7 +708,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -714,6 +718,10 @@
     0x00000000, 0x00000000, 0x08000002, 0x08000000,
     0x00200000, 0x00200000, 0x00008000, 0x00008000,
     0x00000200, 0x00000200, 0x00000008, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
--- a/lib/unictype/ctype_space.h
+++ b/lib/unictype/ctype_space.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/ctype_upper.h
+++ b/lib/unictype/ctype_upper.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[11 << 4];
   }
 u_is_upper =
 {
@@ -104,6 +104,7 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -147,11 +148,10 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -285,18 +285,18 @@
     0xB1DBCED6, 0x11AED2D5, 0x4AAAADB0, 0x55D65555,
     0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFED740, 0x00000FFB, 0x55000000, 0xE6905555,
+    0x00000000, 0x00000000, 0x00000000, 0x00450000,
+    0xFFFED740, 0x00000FFB, 0x55008000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x00055555, 0xFFFE0000, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x55555555, 0x55555555, 0x55555555, 0x55555555,
-    0x00155555, 0x55555555, 0x55555555, 0x01555555,
+    0x40155555, 0x55555555, 0x55555555, 0x55555555,
     0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
     0xFF00FF00, 0x1F00FF00, 0x0F001F00, 0x1F001F00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -307,10 +307,14 @@
     0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00200A9D,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
     0x55555555, 0x55555555, 0x55555555, 0x00000005,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00555555, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+    0x00000855, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
--- a/lib/unictype/ctype_xdigit.h
+++ b/lib/unictype/ctype_xdigit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/decdigit.h
+++ b/lib/unictype/decdigit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decimal digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define decdigit_header_0 16
 #define decdigit_header_1 2
 #define decdigit_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[10 << 6];
+    unsigned char level3[12 << 6];
   }
 u_decdigit =
 {
@@ -21,9 +21,10 @@
        -1,    -1,    -1,    -1,   128,   256,    -1,   384,
        -1,    -1,   512,   512,   512,   512,   512,   512,
       512,   512,   512,    -1,   640,   640,   768,    -1,
-      384,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      384,   896,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,
-      896,    -1,  1024,   640,    -1,    -1,   640,    -1,
+      896,    -1,  1024,   640,    -1,    -1,   640,     0,
+     1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -57,9 +58,8 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   768,    -1,    -1,    -1,
+       -1,   640,  1280,    -1,   640,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -134,7 +134,7 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1152,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1408,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -223,6 +223,22 @@
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
     0x43, 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87,
     0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43,
--- a/lib/unictype/digit.h
+++ b/lib/unictype/digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define digit_header_0 16
 #define digit_header_1 2
 #define digit_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[19 << 6];
+    unsigned char level3[20 << 6];
   }
 u_digit =
 {
@@ -21,12 +21,69 @@
        -1,    -1,    -1,    -1,   256,   384,    -1,   512,
        -1,    -1,   640,   640,   640,   640,   640,   640,
       640,   640,   640,    -1,   768,   768,   896,    -1,
-      512,    -1,    -1,    -1,    -1,    -1,  1024,    -1,
+      512,  1024,    -1,    -1,    -1,    -1,  1152,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,
-     1152,    -1,  1280,   768,    -1,    -1,   768,    -1,
+     1024,    -1,  1280,   768,    -1,    -1,   768,     0,
+     1408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     1536,  1664,    -1,    -1,    -1,    -1,    -1,    -1,
+     1792,  1920,    -1,    -1,    -1,    -1,  2048,  2176,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1408,  1536,    -1,    -1,    -1,    -1,    -1,    -1,
-     1664,  1792,    -1,    -1,    -1,    -1,  1920,  2048,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   896,    -1,    -1,    -1,
+       -1,   768,  1664,    -1,   768,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  1024,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   896,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -77,64 +134,7 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  1152,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   896,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2176,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2304,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2432,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -212,14 +212,6 @@
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x87,
-    0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -231,6 +223,14 @@
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x87,
+    0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -239,6 +239,14 @@
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
--- a/lib/unictype/mirror.h
+++ b/lib/unictype/mirror.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Mirrored Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define mirror_header_0 16
 #define mirror_header_1 2
 #define mirror_header_2 7
@@ -214,7 +214,7 @@
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
-    57317, 57316, 57315, 57314, 57313, 57312, 57311, 57310,
+        0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -332,11 +332,11 @@
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
     55357,     0,     0, 55354, 55353, 55352, 55351,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+    55349, 55348,     0,     0, 55345,     0,     0,     0,
         0,     0,     0, 55338, 55337, 55336, 55335,     0,
         0,     0,     0,     0, 55329, 55328, 55327,     0,
         0,     0, 55323, 55322, 55321, 55320, 55319, 55318,
-    55317, 55316, 55315, 55314,     0,     0,     0,     0,
+    55317, 55316, 55315, 55314, 55313, 55312, 55311, 55310,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0, 54906, 54905, 54904, 54903, 54902,
@@ -391,8 +391,8 @@
         0, 53748, 53747,     0, 53745, 53744,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0, 53729, 53728,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+    53725, 53724, 53723, 53722, 53721, 53720, 53719, 53718,
+    53717, 53716,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -406,7 +406,7 @@
         0,     0,     0,     0,     0,     0,     0,     0,
         1,    -1,     1,    -1,     1,    -1,     1,    -1,
         1,    -1,     0,     0,     1,    -1,     1,    -1,
-        1,    -1,     1,    -1,     0, 53216, 53215, 53214,
+        1,    -1,     1,    -1,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
--- a/lib/unictype/numeric.h
+++ b/lib/unictype/numeric.h
@@ -1,7 +1,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Numeric values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
-static const uc_fraction_t u_numeric_values[107] =
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+static const uc_fraction_t u_numeric_values[108] =
 {
   { 0, 0 },
   { 0, 1 },
@@ -86,6 +86,7 @@
   { 70000, 1 },
   { 80000, 1 },
   { 90000, 1 },
+  { 100000, 1 },
   { -1, 2 },
   { 1, 2 },
   { 3, 2 },
@@ -112,34 +113,161 @@
   { 7, 8 }
 };
 #define numeric_header_0 16
-#define numeric_header_1 2
+#define numeric_header_1 3
 #define numeric_header_2 7
 #define numeric_header_3 511
 #define numeric_header_4 127
 static const
 struct
   {
-    int level1[2];
-    short level2[2 << 9];
-    unsigned short level3[38 * 56 + 1];
+    int level1[3];
+    short level2[3 << 9];
+    unsigned short level3[44 * 56 + 1];
   }
 u_numeric =
 {
-  {     0,   512 },
+  {     0,   512,  1024 },
   {
         0,   128,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   256,   384,    -1,   512,
        -1,    -1,   640,   768,   640,   640,   640,   896,
-      640,   640,   640,    -1,  1024,  1024,  1152,    -1,
-      512,    -1,    -1,    -1,    -1,    -1,  1280,    -1,
-       -1,    -1,    -1,    -1,    -1,  1408,    -1,  1536,
-     1664,    -1,  1792,  1024,    -1,    -1,  1024,    -1,
+     1024,   640,  1152,    -1,  1280,  1280,  1408,    -1,
+      512,  1536,    -1,    -1,    -1,    -1,  1664,    -1,
+       -1,    -1,    -1,    -1,    -1,  1792,    -1,  1920,
+     1536,    -1,  2048,  1280,    -1,    -1,  1280,     0,
+     2176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     2304,  2432,  2560,  2688,    -1,    -1,    -1,    -1,
+     2816,  2944,    -1,    -1,    -1,    -1,  3072,  3200,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  3328,    -1,    -1,    -1,    -1,    -1,    -1,
+     3456,    -1,    -1,  3584,  3712,  3840,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  3968,    -1,    -1,    -1,
+       -1,  1280,  2432,    -1,  1280,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  4096,  4224,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  1536,    -1,
+       -1,    -1,  4352,  4480,    -1,    -1,  4608,  4736,
+       -1,  3968,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  4864,    -1,  4992,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1920,  2048,  2176,  2304,    -1,    -1,    -1,    -1,
-     2432,  2560,    -1,    -1,    -1,    -1,  2688,  2816,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     5120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  2944,    -1,    -1,    -1,    -1,    -1,    -1,
-     3072,    -1,    -1,  3200,  3328,  3456,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  5248,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  5376,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -190,70 +318,7 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  1664,    -1,
-       -1,    -1,  3584,  3712,    -1,    -1,  3840,  3968,
-       -1,  4096,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  4224,    -1,  4352,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4480,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  4608,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  4736,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  5504,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
   },
   {
@@ -267,7 +332,7 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc000, 0x0080, 0x0000,
-    0x0000, 0x0001, 0xa5f0, 0x0182, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0001, 0xae00, 0x0186, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -317,12 +382,33 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+    0x1424, 0x0000, 0x0000, 0x0000, 0x0100, 0x80c1, 0x1820, 0x0010,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+    0x1424, 0x5c0b, 0x5c10, 0x030d, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080,
-    0x1c30, 0x0910, 0xb505, 0xbd6a, 0xb362, 0x2dda, 0x0a77, 0x0000,
+    0x1c30, 0x0910, 0xd545, 0xc57a, 0xb566, 0x6e5b, 0x0a97, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101,
+    0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -348,18 +434,18 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000,
     0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101,
-    0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304,
+    0xc142, 0x4070, 0x1424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304,
-    0xc142, 0x4070, 0x1424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910,
+    0x0005, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -380,10 +466,10 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xeba0, 0x8b0d, 0xe4c7, 0xf9b2,
-    0x4e8c, 0x05ab, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xfbc0, 0x8f15, 0x65c9, 0x19f3,
+    0x569d, 0x05af, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331,
     0x82f1, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331, 0x82f1,
-    0xa2c1, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xa2c1, 0x0012, 0xcc38, 0x539c, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -424,7 +510,7 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0002,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0x0002,
     0x0000, 0x0000, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc100, 0x5080,
     0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -453,13 +539,34 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080,
+    0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
+    0x0000, 0x0000, 0x0160, 0x0000, 0x0300, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0380, 0x00e0, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5800, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0304, 0xc142, 0x4070, 0x1424, 0xca8b,
     0x3527, 0xd5a3, 0x376c, 0x4e5c, 0xe3b7, 0x7cf5, 0x603f, 0x3850,
     0x1624, 0x478d, 0x5264, 0x64b9, 0x9d36, 0x684f, 0x0a54, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xaa5f, 0x30c0, 0x15e3, 0x869d,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xaae0, 0x30c0, 0x15e3, 0x869d,
     0x0cc5, 0x0bc7, 0x0d16, 0x198b, 0x178e, 0x3a54, 0x0217, 0x6081,
     0x1830, 0x0c0c, 0xc58b, 0xb162, 0xccf8, 0xb366, 0x4e19, 0xe3c7,
-    0x78f1, 0x60bc, 0x30d1, 0x52a3, 0x60bd, 0x0000, 0x0000, 0x0000,
+    0x78f1, 0x60bc, 0x30d1, 0x56ab, 0x61bf, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0040, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -482,13 +589,6 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080,
-    0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0800, 0x1516, 0x001c, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -506,8 +606,8 @@
     0xa122, 0x0c10, 0x0508, 0x01c3, 0x5091, 0x0608, 0x8284, 0x4061,
     0x1420, 0x070c, 0x4244, 0x1821, 0x0810, 0x0305, 0x2000, 0x1018,
     0x0508, 0x8103, 0x2850, 0x0a14, 0x0407, 0x9102, 0x2848, 0x0a14,
-    0x80c5, 0x3050, 0x041c, 0x4203, 0x60a1, 0x0030, 0x8200, 0xd741,
-    0xee6b, 0xcf7a, 0xf2df, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x80c5, 0x3050, 0x041c, 0x4203, 0x60a1, 0x0030, 0x8200, 0xf781,
+    0xf67b, 0xd17e, 0x3360, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -523,6 +623,13 @@
     0x0000, 0x0000, 0x0404, 0x4203, 0x70c1, 0x2440, 0x0114, 0x80c1,
     0x3050, 0x101c, 0x4509, 0x3040, 0x1420, 0x070c, 0x4244, 0x1011,
     0x080c, 0xc305, 0x9101, 0x0450, 0x0304, 0xc142, 0x4070, 0x1424,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000
   }
 };
--- a/lib/unictype/pr_alphabetic.h
+++ b/lib/unictype/pr_alphabetic.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[44 << 4];
   }
 u_property_alphabetic =
 {
@@ -45,91 +45,91 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
         4 +   384 * sizeof (short) / sizeof (int) +   400,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   416,
+        4 +   384 * sizeof (short) / sizeof (int) +   432,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -146,17 +146,17 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   432,
-        4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
-       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
+       -1,
        -1,
        -1,
        -1,
@@ -166,9 +166,9 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -278,90 +278,90 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000020, 0x3C000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000020, 0x3CDF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0xBFFF0000, 0xFFFF00B6, 0x000707FF,
-    0x003F0000, 0x07FFFFFE, 0x7EFFFFFF, 0xFFFFC000,
+    0x07FF0000, 0xFFFFFFFE, 0x7EFFFFFF, 0xFFFFC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x1FEFFFFF, 0x9C00E1FE,
-    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFC00, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xE3FFFFFF, 0xFF011FFF, 0xF800000F,
+    0xFFFFFFFE, 0xE3FFFFFF, 0xFF011FFF, 0xF806000F,
     0xFFF99FEE, 0xE3C5FDFF, 0xB080599F, 0x0003000F,
-    0xFFF987EE, 0xC36DFDFF, 0x5E001987, 0x001F0000,
+    0xFFF987EE, 0xC36DFDFF, 0x5E021987, 0x003F0000,
     0xFFFBBFEE, 0xE3EDFDFF, 0x00011BBF, 0x0000000F,
-    0xFFF99FEE, 0xE3EDFDFF, 0xB0C0198F, 0x00020003,
-    0xD63DC7EC, 0xC3FFC718, 0x00801DC7, 0x00000000,
-    0xFFFDDFEE, 0xC3EFFDFF, 0x00601DDF, 0x00000003,
+    0xFFF99FEE, 0xE3EDFDFF, 0xB0C0199F, 0x0002000F,
+    0xD63DC7EC, 0xC3FFC718, 0x00811DC7, 0x00000000,
+    0xFFFDDFEE, 0xE3EFFDFF, 0x03601DDF, 0x0000000F,
     0xFFFDDFEC, 0xE3EFFDFF, 0x40601DDF, 0x0000000F,
-    0xFFFDDFEC, 0xC3FFFDFF, 0x00801DCF, 0x00000003,
+    0xFFFDDFEC, 0xE3FFFDFF, 0x00801DDF, 0xFC00000F,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F807F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x0000207F, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x3000205F, 0x00000000,
-    0x00000001, 0x00000000, 0xFFFFFEFF, 0xFFFE07FF,
+    0x00000001, 0x00000000, 0xFFFFFEFF, 0xFFFE1FFF,
     0xFEFF0F03, 0x1FFFFFFF, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x0147F6FB, 0x03FF0000, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xF97FFFFF, 0xFFFF0000, 0xFFFFC1E7,
+    0x0000407F, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,36 +457,40 @@
     0x000FDFFF, 0x000FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x108001FF, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x01FF0FFF, 0xFFFF0000, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0x000003FF, 0x00000000,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFEFFFFF, 0x00000FEF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000C3FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0xFC00E000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
-    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -499,16 +503,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFC00, 0xFFFF07FF, 0x0007FFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x007FFFFF, 0x00003FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -537,7 +545,7 @@
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -546,7 +554,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEFF06F, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_ascii_hex_digit.h
+++ b/lib/unictype/pr_ascii_hex_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_arabic_digit.h
+++ b/lib/unictype/pr_bidi_arabic_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -148,8 +148,8 @@
        -1
   },
   {
-    0x00000000, 0x00000000, 0x00000000, 0x00001BFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000000F, 0x00000000, 0x00000000, 0x00001BFF,
+    0x00000000, 0x00000000, 0x20000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
--- a/lib/unictype/pr_bidi_arabic_right_to_left.h
+++ b/lib/unictype/pr_bidi_arabic_right_to_left.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -148,11 +148,11 @@
         2 +   128 * sizeof (short) / sizeof (int) +    64
   },
   {
-    0xFFC02FFF, 0xFFFFFFFF, 0x800007FF, 0xFFFEE000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x203FFFFF, 0xFC00C060,
+    0xF8002930, 0xFFFFFFFF, 0x800007FF, 0xFFFEE000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFC00C060,
     0xFFFD7FFF, 0x0000FFFF, 0xFFFFF800, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFE003F, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x000003F0,
+    0x00000000, 0x00000000, 0x00000000, 0x000003E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -164,7 +164,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x3FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0xDFFF0000,
-    0xFC000000, 0x0000FFF0, 0x00080000, 0xFFFFF080,
+    0xFC000000, 0x0000FF80, 0x00080000, 0xFFFFF080,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
--- a/lib/unictype/pr_bidi_block_separator.h
+++ b/lib/unictype/pr_bidi_block_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_boundary_neutral.h
+++ b/lib/unictype/pr_bidi_boundary_neutral.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -558,7 +558,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00008000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00003800, 0x00000000, 0x00000000, 0x0000FC0F,
+    0x00003800, 0x00000000, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_bidi_common_separator.h
+++ b/lib/unictype/pr_bidi_common_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_control.h
+++ b/lib/unictype/pr_bidi_control.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_embedding_or_override.h
+++ b/lib/unictype/pr_bidi_embedding_or_override.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_eur_num_separator.h
+++ b/lib/unictype/pr_bidi_eur_num_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_eur_num_terminator.h
+++ b/lib/unictype/pr_bidi_eur_num_terminator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -152,7 +152,7 @@
     0x00000000, 0x0003003C, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000400,
+    0x00000600, 0x00000000, 0x00000000, 0x00000400,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_bidi_european_digit.h
+++ b/lib/unictype/pr_bidi_european_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_hebrew_right_to_left.h
+++ b/lib/unictype/pr_bidi_hebrew_right_to_left.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_left_to_right.h
+++ b/lib/unictype/pr_bidi_left_to_right.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[17];
     short level2[4 << 7];
-    /*unsigned*/ int level3[36 << 4];
+    /*unsigned*/ int level3[38 << 4];
   }
 u_property_bidi_left_to_right =
 {
@@ -121,6 +121,7 @@
        18 +   512 * sizeof (short) / sizeof (int) +   416,
        18 +   512 * sizeof (short) / sizeof (int) +   432,
        18 +   512 * sizeof (short) / sizeof (int) +   448,
+       18 +   512 * sizeof (short) / sizeof (int) +   464,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
@@ -160,11 +161,10 @@
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   464,
+       18 +   512 * sizeof (short) / sizeof (int) +   480,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   480,
        18 +   512 * sizeof (short) / sizeof (int) +   496,
+       18 +   512 * sizeof (short) / sizeof (int) +   512,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
@@ -268,10 +268,10 @@
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   512,
        18 +   512 * sizeof (short) / sizeof (int) +   528,
+       18 +   512 * sizeof (short) / sizeof (int) +   544,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   544,
+       18 +   512 * sizeof (short) / sizeof (int) +   560,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
@@ -284,14 +284,14 @@
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
+       18 +   512 * sizeof (short) / sizeof (int) +   576,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   560,
+       18 +   512 * sizeof (short) / sizeof (int) +   592,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
@@ -419,7 +419,7 @@
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   560,
+       18 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -547,7 +547,7 @@
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   560
+       18 +   512 * sizeof (short) / sizeof (int) +   592
   },
   {
     0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
@@ -559,27 +559,27 @@
     0x00000000, 0x00000000, 0x00000000, 0xBFCF0000,
     0xFFFFFF4F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFC87, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFC07, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x0000FBFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFF9, 0xEFFFFFFF, 0xFFE1DE01, 0xFFFFFFF3,
     0xFFFFFFFD, 0xEFFFFFFF, 0xFFFFDFE1, 0xFFF3FFF3,
-    0xFFFFFFF9, 0xEFFFFFFF, 0xFFFFC679, 0xFFFCFFFF,
+    0xFFFFFFF9, 0xEFFFFFFF, 0xFFFDC679, 0xFFDCFFFF,
     0xFFFFFFF9, 0xEFFFFFFF, 0xFFFFDE41, 0xFFFDFFF3,
-    0xFFFFFFFD, 0x6FFFFFFF, 0xFFBFDFF1, 0xFFFFFFFF,
+    0xFFFFFFFD, 0x6FFFFFFF, 0xFFBFDFE1, 0xFFFFFFF3,
     0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFDFFE, 0xF807FFFF,
-    0xFFFFFFFF, 0x3FFFFFFF, 0xFF9FC23E, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFF9FC23E, 0x80FFFFF3,
     0xFFFFFFFF, 0xEFFFFFFF, 0xFFFFCFFF, 0xFFF9FFF3,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFDFF1, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFDFE1, 0xFFFFFFF3,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFA3FBFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x780DFFFF, 0xFFFF807F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xE40DFFFF, 0xFFFFC0FF, 0xFFFFFFFF,
     0xFCFFFFFF, 0xC15FFFFF, 0xFFFFFFFF, 0x8001FFFF,
     0x0100FF20, 0xE0000000, 0xFFFFFFBF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFD3A1FFF, 0xFCFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
+    0xFFFFDF9B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -596,22 +596,22 @@
     0xFFFFFFFF, 0xC07FFFFF, 0xD7F001BF, 0xFC00FFFF,
     0xFFFF8000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFDFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xF1FBF078, 0xFFFFFFCE, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xF1FBFE78, 0xFFFFFFCE, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
     0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFF0, 0xE82FFFFF, 0xFFFFFFFB, 0xFFF007FF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFC, 0xFFFFFCC3, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFF300FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x3FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x3FFFFF80,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x5FFFFFFF, 0x1FFF1FFC, 0x9FFF1FFF,
     0x00004000, 0x00000000, 0x00000000, 0x800E0000,
-    0xFFFF8000, 0xFFC00000, 0x0000FFFF, 0xFFFF0000,
+    0xFFFF8000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
     0x3E2FFC84, 0xF3FFBD50, 0x0007C3E0, 0xFFFFFFFF,
     0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -623,29 +623,29 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xE0000000, 0xFFF81000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC0000000, 0xE0001000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000F800, 0x0000F000,
+    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF8000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x01FFF81F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xCF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
+    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFF, 0xFFFFFFFF,
     0xE1FFFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFF0,
     0x9FFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x8FFFFFFF,
     0xFFFFFFFF, 0x0001FFFF, 0xFFFF0FFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF87FFFFF,
@@ -658,11 +658,15 @@
     0x0000FFFF, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0FF07FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xF8000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFF7BB, 0xFFFFF09F, 0xFFFFFFFF, 0xFF0FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFEF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFC03F, 0xFFFC007F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFF7BB, 0xFFFFF09F, 0xFFFFFFFF, 0xFF0FFFFF,
+    0xFFFFFFFF, 0xFF9981FF, 0xFFFFEFF7, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -677,7 +681,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0x00000000,
-    0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xF000F800, 0xFFFFFFFF, 0xFFFFFFFF, 0xDFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0007FC7F,
@@ -690,6 +694,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00003FFF, 0x00000000,
+    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
--- a/lib/unictype/pr_bidi_non_spacing_mark.h
+++ b/lib/unictype/pr_bidi_non_spacing_mark.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_property_bidi_non_spacing_mark =
 {
@@ -56,9 +56,9 @@
        -1,
        -1,
        -1,
-       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -117,8 +117,9 @@
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -158,16 +159,15 @@
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   256,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   304,
-       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -425,10 +425,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000378, 0x00000000, 0x00000000, 0x00000000,
+    0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
     0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
@@ -436,20 +436,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
     0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
-    0x00000006, 0x10000000, 0x00003986, 0x00030000,
+    0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
-    0x00000002, 0x90000000, 0x0040200E, 0x00000000,
+    0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
     0x00000004, 0x00000000, 0x00002001, 0x00000000,
-    0x00000000, 0xC0000000, 0x00603DC1, 0x00000000,
+    0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
     0x00000000, 0x10000000, 0x00003000, 0x0000000C,
-    0x00000000, 0x00000000, 0x0000200E, 0x00000000,
+    0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
     0x00000000, 0x00000000, 0x005C0400, 0x00000000,
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
     0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0x00000000, 0x02C5E000, 0x03000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+    0x00002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -462,25 +462,37 @@
     0x00000000, 0x3F800000, 0x200FFE40, 0x00000000,
     0x00003800, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
-    0x00000000, 0x0E040F87, 0x00000000, 0x00000000,
+    0x00000000, 0x0E040187, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x30078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00667E00, 0x00001008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -488,10 +500,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000FFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_bidi_other_neutral.h
+++ b/lib/unictype/pr_bidi_other_neutral.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[31 << 4];
   }
 u_property_bidi_other_neutral =
 {
@@ -269,7 +269,7 @@
        -1,
        -1,
        -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -291,7 +291,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000400, 0x00000000, 0x00000000, 0x00000000,
-    0x0000C000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000C0C0, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000200,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03C00000,
@@ -299,7 +299,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x05F80000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7F000000,
     0x00000000, 0x00000000, 0x00000000, 0x00060000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -336,29 +336,29 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007EFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFEFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF07FF, 0xFFFF0FFF,
+    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFF1E, 0xE0C10001, 0x00000000, 0x00000000,
     0x18000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
     0x60000000, 0x00000000, 0xFFFF0000, 0x70000000,
     0x00000000, 0xFFFE0000, 0x0000F000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x07800000,
@@ -371,10 +371,10 @@
     0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0xC0080000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07FFFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000003, 0x00000000, 0x00000000,
+    0x00000100, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000F00, 0x00000000, 0x00F00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -390,7 +390,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000002, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF07FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00000000, 0x00000000,
@@ -398,6 +398,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/pr_bidi_pdf.h
+++ b/lib/unictype/pr_bidi_pdf.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_segment_separator.h
+++ b/lib/unictype/pr_bidi_segment_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_bidi_whitespace.h
+++ b/lib/unictype/pr_bidi_whitespace.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_combining.h
+++ b/lib/unictype/pr_combining.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_property_combining =
 {
@@ -56,9 +56,9 @@
        -1,
        -1,
        -1,
-       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -117,8 +117,9 @@
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -158,16 +159,15 @@
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   256,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   304,
-       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -425,10 +425,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000378, 0x00000000, 0x00000000, 0x00000000,
+    0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
     0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
@@ -436,20 +436,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
     0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
-    0x0000000E, 0xD0000000, 0x00003987, 0x00030000,
+    0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
-    0x0000000E, 0xD0000000, 0x00C0398F, 0x00000000,
+    0x0000000E, 0xD0000000, 0x00C0399F, 0x0000000C,
     0x00000004, 0xC0000000, 0x00803DC7, 0x00000000,
-    0x0000000E, 0xC0000000, 0x00603DDF, 0x00000000,
+    0x0000000E, 0xC0000000, 0x00603DDF, 0x0000000C,
     0x0000000C, 0xD0000000, 0x00603DDF, 0x0000000C,
-    0x0000000C, 0xC0000000, 0x00803DCF, 0x00000000,
+    0x0000000C, 0xC0000000, 0x00803DDF, 0x0000000C,
     0x0000000C, 0x00000000, 0xFF5F8400, 0x000C0000,
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
     0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0x00000000, 0x03C7F000, 0x03C00000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
+    0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -467,20 +467,32 @@
     0x0F800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
+    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x30078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x000000F8, 0x00000000, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+    0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -488,10 +500,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000FFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_composite.h
+++ b/lib/unictype/pr_composite.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_currency_symbol.h
+++ b/lib/unictype/pr_currency_symbol.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_dash.h
+++ b/lib/unictype/pr_dash.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -168,7 +168,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00800000, 0x00000000, 0x00000000, 0x00000000,
+    0x04800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_decimal_digit.h
+++ b/lib/unictype/pr_decimal_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[13 << 4];
+    /*unsigned*/ int level3[17 << 4];
   }
 u_property_decimal_digit =
 {
@@ -35,6 +35,56 @@
         3 +   256 * sizeof (short) / sizeof (int) +   112,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -54,6 +104,64 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -148,115 +256,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -304,7 +304,7 @@
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x000003FF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -318,6 +318,22 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_default_ignorable_code_point.h
+++ b/lib/unictype/pr_default_ignorable_code_point.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -9,58 +9,56 @@
 struct
   {
     int header[1];
-    int level1[17];
-    short level2[4 << 7];
-    /*unsigned*/ int level3[13 << 4];
+    int level1[15];
+    short level2[3 << 7];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_property_default_ignorable_code_point =
 {
-  { 17 },
+  { 15 },
   {
-       18 * sizeof (int) / sizeof (short) +     0,
-       18 * sizeof (int) / sizeof (short) +   128,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   384,
-       18 * sizeof (int) / sizeof (short) +   256,
-       18 * sizeof (int) / sizeof (short) +   256
-  },
-  {
-       18 +   512 * sizeof (short) / sizeof (int) +     0,
-       18 +   512 * sizeof (short) / sizeof (int) +    16,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    32,
+       16 * sizeof (int) / sizeof (short) +     0,
+       16 * sizeof (int) / sizeof (short) +   128,
        -1,
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    64,
-       18 +   512 * sizeof (short) / sizeof (int) +    80,
-       -1,
-       -1,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    96,
-       -1,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       16 * sizeof (int) / sizeof (short) +   256
+  },
+  {
+       16 +   384 * sizeof (short) / sizeof (int) +     0,
+       16 +   384 * sizeof (short) / sizeof (int) +    16,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    48,
+       16 +   384 * sizeof (short) / sizeof (int) +    64,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    80,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -144,10 +142,6 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -162,8 +156,12 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -268,7 +266,7 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   176,
+       16 +   384 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -291,7 +289,15 @@
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
        -1,
@@ -411,157 +417,17 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   192,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   192
+       -1
   },
   {
-    0xFFFFC1FF, 0x00000000, 0x00000000, 0x80000000,
-    0xFFFFFFDF, 0x00002000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00002000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000000F, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x20000000, 0x00000000,
-    0x00008000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x80000000, 0x00000001,
@@ -582,25 +448,17 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000010,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
     0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000001, 0x00000000, 0xC1FF0000,
+    0x00000000, 0x00000001, 0x00000000, 0x01FF0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xC0000000
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
   }
 };
--- a/lib/unictype/pr_deprecated.h
+++ b/lib/unictype/pr_deprecated.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -9,17 +9,77 @@
 struct
   {
     int header[1];
-    int level1[1];
-    short level2[1 << 7];
-    /*unsigned*/ int level3[3 << 4];
+    int level1[15];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[4 << 4];
   }
 u_property_deprecated =
 {
-  { 1 },
-  {     2 * sizeof (int) / sizeof (short) +     0 },
+  { 15 },
+  {
+       16 * sizeof (int) / sizeof (short) +     0,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 * sizeof (int) / sizeof (short) +   128
+  },
   {
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +     0,
+       16 +   256 * sizeof (short) / sizeof (int) +     0,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    16,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -29,12 +89,96 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    16,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -159,6 +303,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x0000FC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/pr_diacritic.h
+++ b/lib/unictype/pr_diacritic.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[19 << 4];
+    /*unsigned*/ int level3[21 << 4];
   }
 u_property_diacritic =
 {
@@ -44,8 +44,8 @@
        -1,
        -1,
        -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -104,7 +104,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -145,10 +146,9 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -253,7 +253,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -288,7 +288,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xE0FF7FFF, 0x04300007,
     0x00000030, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000078, 0x00000000, 0x00000000, 0x00000000,
+    0x000000F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x02000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFB, 0x00000016, 0x00000000,
     0x00000000, 0x00000000, 0x0187F800, 0x00000000,
@@ -297,7 +297,7 @@
     0x00000000, 0x0001FFC0, 0x00000000, 0x003FF800,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x10000000, 0x001E2000, 0x00000000,
+    0x00000000, 0x10000000, 0x001E2000, 0x00020000,
     0x00000000, 0x10000000, 0x00002000, 0x00000000,
     0x00000000, 0x10000000, 0x00002000, 0x00000000,
     0x00000000, 0x10000000, 0x00002000, 0x00000000,
@@ -311,8 +311,8 @@
     0x00000000, 0x00000000, 0x00001F00, 0x00000000,
     0x03000000, 0xC2A00000, 0x00000000, 0x00000000,
     0x000000DC, 0x00000000, 0x00000040, 0x00000000,
-    0x00000000, 0x02800000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x06800000, 0x00000000, 0x00000000,
+    0x0000BF80, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -326,28 +326,36 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00100000, 0x00000010, 0x000FF800,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000400, 0x00000000, 0x00000000,
+    0x00000000, 0x00C00000, 0x00000000, 0x3F000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x000007FF,
-    0x00000000, 0x00000000, 0x000007F0, 0xC0000000,
+    0x00000000, 0x00000000, 0x0000FFF0, 0xC0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x1E000000, 0x00000000, 0x00000000, 0x10000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xB0008000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000003, 0x00000000, 0x00000000,
+    0xFF800000, 0x00000003, 0x00000000, 0x00000000,
+    0x00000100, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00007800, 0x00080000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x0000000F, 0x00000000, 0x00000000,
+    0x00000000, 0x0000007F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x40000000, 0x00000001, 0x00010000,
     0xC0000000, 0x00000000, 0x00000000, 0x00000008,
--- a/lib/unictype/pr_extender.h
+++ b/lib/unictype/pr_extender.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[8 << 4];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_property_extender =
 {
@@ -32,16 +32,6 @@
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +    64,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
@@ -52,52 +42,6 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
@@ -145,7 +89,63 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   112
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   144
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -168,6 +168,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00400000, 0x00000000, 0x08000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000020, 0x003E0000, 0x00000000, 0x00000000,
     0x60000000, 0x00000000, 0x00000000, 0x70000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -176,6 +180,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00001000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
--- a/lib/unictype/pr_format_control.h
+++ b/lib/unictype/pr_format_control.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -428,7 +428,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00008000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000800, 0x00000000, 0x00000000, 0x0000FC0F,
+    0x00000800, 0x00000000, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_grapheme_base.h
+++ b/lib/unictype/pr_grapheme_base.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[49 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_property_grapheme_base =
 {
@@ -107,7 +107,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
@@ -129,7 +129,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   496,
+        4 +   384 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -146,16 +146,16 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   512,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
         4 +   384 * sizeof (short) / sizeof (int) +   592,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
         4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -167,8 +167,8 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
         4 +   384 * sizeof (short) / sizeof (int) +   672,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
        -1,
@@ -254,10 +254,10 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   688,
         4 +   384 * sizeof (short) / sizeof (int) +   704,
         4 +   384 * sizeof (short) / sizeof (int) +   720,
         4 +   384 * sizeof (short) / sizeof (int) +   736,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -270,7 +270,7 @@
        -1,
        -1,
        -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   768,
        -1,
        -1,
        -1,
@@ -361,7 +361,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   752,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   768,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1
   },
@@ -414,34 +414,34 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x7C300000,
-    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x7CFF0000,
+    0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC07, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
     0x000006FF, 0x40000000, 0xFFFF0049, 0x001F07FF,
-    0xC800F800, 0x07FFFFFE, 0x000007FF, 0xFFFEFFFF,
+    0xC800FFC0, 0xFFFFFFFE, 0x000007FF, 0xFFFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFFFFC260,
-    0xFFFD3FFF, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD3FFF, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x07F007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF8, 0xE3FFFFFF, 0xFF011E01, 0xF801FFF3,
+    0xFFFFFFF8, 0xE3FFFFFF, 0xFF011E01, 0xF807FFF3,
     0xFFF99FEC, 0xA3C5FDFF, 0xB0005981, 0x07FFFFC3,
     0xFFF987E8, 0xC36DFDFF, 0x5E000001, 0x001CFFC0,
     0xFFFBBFE8, 0xE3EDFDFF, 0x00011A01, 0x0002FFC3,
     0xFFF99FEC, 0x23EDFDFF, 0xB0001981, 0x0003FFC3,
-    0xD63DC7E8, 0x83FFC718, 0x00001DC6, 0x07FFFFC0,
-    0xFFFDDFEE, 0x03EFFDFF, 0x0000001E, 0x0000FFC3,
+    0xD63DC7E8, 0x83FFC718, 0x00011DC6, 0x07FFFFC0,
+    0xFFFDDFEE, 0x23EFFDFF, 0x0300001E, 0xFF00FFC3,
     0xFFFDDFEC, 0x63EFFDFF, 0x40000D9B, 0x0006FFC3,
-    0xFFFDDFEC, 0x83FFFDFF, 0x00001DC1, 0x0000FFC3,
+    0xFFFDDFEC, 0xA3FFFDFF, 0x00001DC1, 0xFE3FFFC3,
     0xFC7FFFEC, 0x2FFBFFFF, 0x7F03007F, 0x001C0000,
     0xFFFFFFFE, 0x800DFFFF, 0x0FFF807F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
-    0xFCFFFFFF, 0xFD5FFFFF, 0xFFFFFEFF, 0x800007FF,
-    0x00000F20, 0xC0000000, 0x00039FBF, 0x00000000,
-    0xFFFFFFFF, 0x010216FB, 0x00FFFFFF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFCFFFFFF, 0xFD5FFFFF, 0xFFFFFEFF, 0x80001FFF,
+    0x00000F20, 0xC0000000, 0x001FDFBF, 0x00000000,
+    0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
+    0xC3FFDF9B, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,25 +457,25 @@
     0x0003DFFF, 0x0063FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0xC04FFFFF, 0x1FF001BF, 0x03FF03FF,
     0x03FF47FF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x01FB0E78, 0xFFFFFFF1, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
     0xCE7FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFF0, 0xE82FFFFF, 0xFFFF0FFB, 0x1FF007FF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x03FFC4C3, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xF8300FFF, 0xFFFFE3FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
     0xFFFF07FF, 0xFFFF80FF, 0xFFFFFFFF, 0xFFF30000,
     0x001F7FFF, 0x003FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF87FFF, 0xFFFFFFFF,
-    0xFFFF001F, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
+    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -485,29 +485,29 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x1FFFFFFF, 0x0007FFFF, 0x00000000, 0x00000000,
+    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF07FF, 0xFFFF0FFF,
+    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x07FFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xF87FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0x0000FFFF, 0xFFFF0000,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
     0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -519,16 +519,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xC0087FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000F9F, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC00F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFC03F, 0x800C007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07FFFFFF, 0x00000003, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BF, 0x00000F9F, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0x001981FF, 0xF3FF2FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -551,13 +555,13 @@
     0x03FF0000, 0xFFFF0000, 0xFFF7FFFF, 0xFFDF0F7F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x30007F7F,
+    0x3FFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x30007F7F,
     0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0xFFFFFF87, 0xFF8FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x0FFF07FF, 0x00000000, 0xFFFF0000, 0x1FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF000F, 0x000007FF, 0x00000000,
     0xBFFFFFFF, 0xFFFFFFFF, 0x003FFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -566,7 +570,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x01FF00FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -582,7 +586,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
-    0xFFFFFFFF, 0xFFFFFC7F, 0xFFFFFFFF, 0x00003C5F,
+    0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00003C5F,
     0xFFFFF018, 0xFFFFC3FF, 0x3FFFFFFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -596,6 +600,10 @@
     0xFFFFFFFF, 0xFFFFFF3F, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_grapheme_extend.h
+++ b/lib/unictype/pr_grapheme_extend.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_property_grapheme_extend =
 {
@@ -56,9 +56,9 @@
        -1,
        -1,
        -1,
-       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -117,8 +117,9 @@
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -158,16 +159,15 @@
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   256,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   304,
-       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -425,10 +425,10 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000378, 0x00000000, 0x00000000, 0x00000000,
+    0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
     0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
@@ -436,20 +436,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
     0x00000002, 0x50000000, 0x0080201E, 0x0000000C,
-    0x00000006, 0x10000000, 0x00003986, 0x00030000,
+    0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
-    0x00000002, 0xD0000000, 0x00C0200E, 0x00000000,
+    0x00000002, 0xD0000000, 0x00C0201E, 0x0000000C,
     0x00000004, 0x40000000, 0x00802001, 0x00000000,
-    0x00000000, 0xC0000000, 0x00603DC1, 0x00000000,
+    0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
     0x00000000, 0x90000000, 0x00603044, 0x0000000C,
-    0x00000000, 0x40000000, 0x0080200E, 0x00000000,
+    0x00000000, 0x40000000, 0x0080201E, 0x0000000C,
     0x00000000, 0x00000000, 0x805C8400, 0x00000000,
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
     0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0x00000000, 0x02C5E000, 0x03000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+    0x00002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -467,20 +467,32 @@
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00003000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000007FF, 0xC0000000,
-    0x00003000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0000FFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000840, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x30078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000844, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00667E00, 0x00001008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -488,10 +500,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000FFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0x0000FFFF, 0x0000007F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_grapheme_link.h
+++ b/lib/unictype/pr_grapheme_link.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -295,7 +295,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000010, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x02000000, 0x00000000, 0x00000000,
+    0x00000000, 0x06000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -306,10 +306,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000010, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000400, 0x00000000, 0x00000000,
     0x00000040, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00080000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_hex_digit.h
+++ b/lib/unictype/pr_hex_digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_hyphen.h
+++ b/lib/unictype/pr_hyphen.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_id_continue.h
+++ b/lib/unictype/pr_id_continue.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[4 << 7];
-    /*unsigned*/ int level3[44 << 4];
+    /*unsigned*/ int level3[45 << 4];
   }
 u_property_id_continue =
 {
@@ -119,7 +119,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   352,
        16 +   512 * sizeof (short) / sizeof (int) +   368,
        16 +   512 * sizeof (short) / sizeof (int) +   384,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   400,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
@@ -141,7 +141,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   400,
+       16 +   512 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -158,16 +158,16 @@
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   416,
        16 +   512 * sizeof (short) / sizeof (int) +   432,
        16 +   512 * sizeof (short) / sizeof (int) +   448,
        16 +   512 * sizeof (short) / sizeof (int) +   464,
        16 +   512 * sizeof (short) / sizeof (int) +   480,
        16 +   512 * sizeof (short) / sizeof (int) +   496,
        16 +   512 * sizeof (short) / sizeof (int) +   512,
+       16 +   512 * sizeof (short) / sizeof (int) +   528,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   528,
        16 +   512 * sizeof (short) / sizeof (int) +   544,
+       16 +   512 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -179,8 +179,8 @@
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   560,
        16 +   512 * sizeof (short) / sizeof (int) +   576,
+       16 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -266,10 +266,10 @@
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   592,
        16 +   512 * sizeof (short) / sizeof (int) +   608,
        16 +   512 * sizeof (short) / sizeof (int) +   624,
        16 +   512 * sizeof (short) / sizeof (int) +   640,
+       16 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -373,7 +373,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   656,
+       16 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -415,10 +415,10 @@
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   672,
+       16 +   512 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -549,39 +549,39 @@
   },
   {
     0x00000000, 0x03FF0000, 0x87FFFFFE, 0x07FFFFFE,
-    0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+    0x00000000, 0x04A00400, 0xFF7FFFFF, 0xFF7FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3C00FFFF,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3CDFFFFF,
+    0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFC7B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
-    0x003F0000, 0x07FFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+    0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
-    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0x00003FFF,
+    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF800FFCF,
+    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
-    0xFFF987EE, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
+    0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0398F, 0x0002FFC3,
-    0xD63DC7EC, 0xC3FFC718, 0x00803DC7, 0x0000FFC0,
-    0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
+    0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
+    0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
+    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
-    0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE07FF,
+    0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
     0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0xFFFFFFFF, 0x03C7F6FB, 0x03FF03FF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
+    0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -597,32 +597,32 @@
     0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
     0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF, 0xC0000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x80000000, 0x00100001, 0x80020000,
-    0x001F0000, 0x00000000, 0x1FFF0000, 0x0000FFE2,
+    0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
-    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
     0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -635,16 +635,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
+    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -664,16 +668,16 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
     0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x0FFF0000,
-    0x0000FFFF, 0x0018000F, 0x0000E000, 0xFFDF0000,
+    0x0000FFFF, 0x0018007F, 0x0000E000, 0xFFDF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
     0x03FF0000, 0x87FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
     0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
     0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -682,7 +686,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_id_start.h
+++ b/lib/unictype/pr_id_start.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[41 << 4];
+    /*unsigned*/ int level3[42 << 4];
   }
 u_property_id_start =
 {
@@ -107,7 +107,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   352,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   400,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
@@ -129,7 +129,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   400,
+        4 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -146,16 +146,16 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   416,
         4 +   384 * sizeof (short) / sizeof (int) +   432,
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
+        4 +   384 * sizeof (short) / sizeof (int) +   528,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   528,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
+        4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -167,8 +167,8 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   560,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -361,7 +361,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000000, 0x3C000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000000, 0x3CDF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8000003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x00000000,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
-    0x00000001, 0x00000000, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F0000, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+    0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,32 +457,32 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xF87FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -495,16 +495,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -533,7 +537,7 @@
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -542,7 +546,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_ideographic.h
+++ b/lib/unictype/pr_ideographic.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -295,12 +295,12 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00003FFF, 0x00000000, 0xFFFF0000,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_ids_binary_operator.h
+++ b/lib/unictype/pr_ids_binary_operator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_ids_trinary_operator.h
+++ b/lib/unictype/pr_ids_trinary_operator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_ignorable_control.h
+++ b/lib/unictype/pr_ignorable_control.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -432,7 +432,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00300000, 0x00000000, 0x00000000,
-    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC0F,
+    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_iso_control.h
+++ b/lib/unictype/pr_iso_control.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_join_control.h
+++ b/lib/unictype/pr_join_control.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_left_of_pair.h
+++ b/lib/unictype/pr_left_of_pair.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_line_separator.h
+++ b/lib/unictype/pr_line_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_logical_order_exception.h
+++ b/lib/unictype/pr_logical_order_exception.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_lowercase.h
+++ b/lib/unictype/pr_lowercase.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[13 << 4];
+    /*unsigned*/ int level3[14 << 4];
   }
 u_property_lowercase =
 {
@@ -104,6 +104,7 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -145,13 +146,12 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -255,8 +255,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
        -1,
        -1,
@@ -285,18 +285,18 @@
     0x4E243129, 0xE6512D2A, 0xB5555240, 0xAA29AAAA,
     0xAAAAAAAA, 0x93FAAAAA, 0xFFFFAA85, 0xFFFFFFFF,
     0xFFEFFFFF, 0x01FFFFFF, 0x00000003, 0x0000001F,
-    0x00000000, 0x00000000, 0x00000020, 0x3C000000,
+    0x00000000, 0x00000000, 0x00000020, 0x3C8A0000,
     0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0x000AAAAA, 0x00000000, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
-    0x0FEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x02AAAAAA,
+    0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
     0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
     0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
@@ -307,10 +307,14 @@
     0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00D01562,
+    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x3FDA1562,
     0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FFAAAA,
+    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_math.h
+++ b/lib/unictype/pr_math.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[12 << 4];
+    /*unsigned*/ int level3[13 << 4];
   }
 u_property_math =
 {
@@ -24,6 +24,7 @@
         3 +   256 * sizeof (short) / sizeof (int) +     0,
         3 +   256 * sizeof (short) / sizeof (int) +    16,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
@@ -36,13 +37,12 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    32,
         3 +   256 * sizeof (short) / sizeof (int) +    48,
         3 +   256 * sizeof (short) / sizeof (int) +    64,
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -146,9 +146,9 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
@@ -255,8 +255,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -287,29 +287,33 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00270000, 0x00730000,
-    0x00400000, 0x001C0000, 0x00040011, 0x7C00000E,
-    0x00007C00, 0x00000000, 0x1FFF0000, 0x0000F062,
+    0x000001C0, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00400000, 0x001C0000, 0x00040011, 0x7C00001E,
+    0x00007C00, 0x00000000, 0x1FFF0000, 0x0000F862,
     0x3E2FFC04, 0xF1FBB310, 0x00000BFF, 0x00000000,
-    0x0C1F0000, 0x00004049, 0x0014C000, 0xFFF00000,
+    0xFFFF0000, 0xF0C37EFF, 0x2FFFFFFF, 0xFFF00030,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000F00, 0x00000003, 0x00000000, 0x10000000,
-    0xF8000000, 0x008FFFFF, 0xF0010000, 0x00000003,
+    0xF8000000, 0x00BFFFFF, 0xF0010000, 0x00000007,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00800000, 0x00000002, 0xFF000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00008000,
+    0x00000000, 0xF0FFC003, 0x000F8CC3, 0xFF001F94,
+    0x00000060, 0x00000000, 0x00000005, 0x0000E00F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF07FF, 0xFFFF0FFF,
+    0x00000000, 0x00000000, 0xFFFF17FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0x00001F9F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_non_break.h
+++ b/lib/unictype/pr_non_break.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_not_a_character.h
+++ b/lib/unictype/pr_not_a_character.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_numeric.h
+++ b/lib/unictype/pr_numeric.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -9,44 +9,255 @@
 struct
   {
     int header[1];
-    int level1[2];
-    short level2[2 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    int level1[3];
+    short level2[3 << 7];
+    /*unsigned*/ int level3[32 << 4];
   }
 u_property_numeric =
 {
-  { 2 },
+  { 3 },
   {
-        3 * sizeof (int) / sizeof (short) +     0,
-        3 * sizeof (int) / sizeof (short) +   128
+        4 * sizeof (int) / sizeof (short) +     0,
+        4 * sizeof (int) / sizeof (short) +   128,
+        4 * sizeof (int) / sizeof (short) +   256
   },
   {
-        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   384 * sizeof (short) / sizeof (int) +     0,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +    16,
+        4 +   384 * sizeof (short) / sizeof (int) +    32,
+        4 +   384 * sizeof (short) / sizeof (int) +    48,
+        4 +   384 * sizeof (short) / sizeof (int) +    64,
+        4 +   384 * sizeof (short) / sizeof (int) +    80,
+        4 +   384 * sizeof (short) / sizeof (int) +    96,
+        4 +   384 * sizeof (short) / sizeof (int) +   112,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   128,
+        4 +   384 * sizeof (short) / sizeof (int) +   144,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   176,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   192,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   208,
+        4 +   384 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   240,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   256,
+        4 +   384 * sizeof (short) / sizeof (int) +   272,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    16,
-        3 +   256 * sizeof (short) / sizeof (int) +    32,
-        3 +   256 * sizeof (short) / sizeof (int) +    48,
-        3 +   256 * sizeof (short) / sizeof (int) +    64,
-        3 +   256 * sizeof (short) / sizeof (int) +    80,
-        3 +   256 * sizeof (short) / sizeof (int) +    96,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   352,
+        4 +   384 * sizeof (short) / sizeof (int) +   368,
+        4 +   384 * sizeof (short) / sizeof (int) +   384,
+        4 +   384 * sizeof (short) / sizeof (int) +   400,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   416,
+        4 +   384 * sizeof (short) / sizeof (int) +   432,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   448,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   240,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   464,
+       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -148,69 +359,6 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
        -1,
        -1,
        -1,
@@ -254,26 +402,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1
@@ -295,16 +424,16 @@
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x003FFFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x000003FF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -322,11 +451,15 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03F10000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
-    0x0000000F, 0x00000000, 0x00000000, 0x00000000,
+    0x000001EF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -347,6 +480,22 @@
     0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x000003FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x01080800,
+    0x00000000, 0x00040000, 0x000A0000, 0x20000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
@@ -382,6 +531,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00010000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/pr_other_alphabetic.h
+++ b/lib/unictype/pr_other_alphabetic.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[16 << 4];
+    /*unsigned*/ int level3[19 << 4];
   }
 u_property_other_alphabetic =
 {
@@ -35,11 +35,15 @@
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
        -1,
@@ -101,11 +105,8 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -145,8 +146,7 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -154,7 +154,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -287,7 +287,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xBFFF0000, 0x000000B6, 0x00000000,
-    0x003F0000, 0x00000000, 0x7EFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0x7EFFF800, 0x00010000,
     0x00000000, 0x00000000, 0x1FC00000, 0x0000219E,
     0x00020000, 0xFFFF0000, 0x00000000, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x00000000,
@@ -295,20 +295,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000E, 0xC0000000, 0x00001FFF, 0x0000000C,
     0x0000000E, 0xC0000000, 0x0080199F, 0x0000000C,
-    0x0000000E, 0xC0000000, 0x00001987, 0x00030000,
+    0x0000000E, 0xC0000000, 0x00021987, 0x00230000,
     0x0000000E, 0xC0000000, 0x00001BBF, 0x0000000C,
-    0x0000000E, 0xC0000000, 0x00C0198F, 0x00000000,
+    0x0000000E, 0xC0000000, 0x00C0199F, 0x0000000C,
     0x00000004, 0xC0000000, 0x00801DC7, 0x00000000,
-    0x0000000E, 0xC0000000, 0x00601DDF, 0x00000000,
+    0x0000000E, 0xC0000000, 0x00601DDF, 0x0000000C,
     0x0000000C, 0xC0000000, 0x00601DDF, 0x0000000C,
-    0x0000000C, 0xC0000000, 0x00801DCF, 0x00000000,
+    0x0000000C, 0xC0000000, 0x00801DDF, 0x0000000C,
     0x0000000C, 0x00000000, 0xFF5F8000, 0x000C0000,
     0x00000000, 0x07F20000, 0x00002000, 0x00000000,
     0x00000000, 0x1BF20000, 0x00002000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFE0000,
     0xFEFF0003, 0x1FFFFFFF, 0x00000000, 0x00000000,
-    0x00000000, 0x0147F000, 0x03C00000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x797FF800, 0xC3C00000, 0x001E0185,
+    0x0000007C, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -326,12 +326,24 @@
     0x0F800000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFE00000, 0x0000000F, 0x00000000,
+    0x00000007, 0x000003FE, 0x00000000, 0x00000000,
+    0x00000000, 0x003FFFF0, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x000000F8, 0x00000000, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
+    0x00000000, 0x000007C0, 0x0007FF80, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_other_default_ignorable_code_point.h
+++ b/lib/unictype/pr_other_default_ignorable_code_point.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -300,7 +300,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x80000000, 0x00000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x000003F0,
+    0x00000000, 0x00000000, 0x00000000, 0x000003E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_other_grapheme_extend.h
+++ b/lib/unictype/pr_other_grapheme_extend.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[5 << 4];
+    /*unsigned*/ int level3[6 << 4];
   }
 u_property_other_grapheme_extend =
 {
@@ -148,6 +148,7 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
        -1,
        -1,
        -1,
@@ -252,8 +253,7 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -297,6 +297,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0007C020,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
--- a/lib/unictype/pr_other_id_continue.h
+++ b/lib/unictype/pr_other_id_continue.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,13 +11,15 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[1 << 4];
+    /*unsigned*/ int level3[3 << 4];
   }
 u_property_other_id_continue =
 {
   { 1 },
   {     2 * sizeof (int) / sizeof (short) +     0 },
   {
+        2 +   128 * sizeof (short) / sizeof (int) +     0,
+        2 +   128 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -25,9 +27,7 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +     0,
+        2 +   128 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
@@ -149,6 +149,14 @@
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00800000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000080, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0003FE00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
--- a/lib/unictype/pr_other_id_start.h
+++ b/lib/unictype/pr_other_id_start.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_other_lowercase.h
+++ b/lib/unictype/pr_other_lowercase.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[4 << 4];
+    /*unsigned*/ int level3[6 << 4];
   }
 u_property_other_lowercase =
 {
@@ -40,6 +40,10 @@
        -1,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    64,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -97,11 +101,7 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -163,6 +163,14 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
--- a/lib/unictype/pr_other_math.h
+++ b/lib/unictype/pr_other_math.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_property_other_math =
 {
@@ -39,115 +39,8 @@
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +    32,
         3 +   256 * sizeof (short) / sizeof (int) +    48,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +    64,
         3 +   256 * sizeof (short) / sizeof (int) +    80,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
@@ -256,7 +149,114 @@
        -1,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
        -1,
@@ -287,18 +287,22 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00270000, 0x00330000,
-    0x00400000, 0x001C0000, 0x00000001, 0x6000000E,
-    0x00006000, 0x00000000, 0x1FFF0000, 0x0000F062,
+    0x00400000, 0x001C0000, 0x00000001, 0x6000001E,
+    0x00006000, 0x00000000, 0x1FFF0000, 0x0000F862,
     0x3E2FFC04, 0xF1FBB310, 0x000003E0, 0x00000000,
+    0xF3E00000, 0xF0C33EB6, 0x2FEB3FFF, 0x00000030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00800000, 0x00010000, 0x00000000,
+    0x00000000, 0x00B00000, 0x00010000, 0x00000004,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000060, 0x00000FC0,
+    0x00000000, 0xF07FC003, 0x000F8CC1, 0x00001F94,
+    0x00000060, 0x00000000, 0x00000005, 0x0000600F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_other_uppercase.h
+++ b/lib/unictype/pr_other_uppercase.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_paired_punctuation.h
+++ b/lib/unictype/pr_paired_punctuation.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_paragraph_separator.h
+++ b/lib/unictype/pr_paragraph_separator.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_pattern_syntax.h
+++ b/lib/unictype/pr_pattern_syntax.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_pattern_white_space.h
+++ b/lib/unictype/pr_pattern_white_space.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_private_use.h
+++ b/lib/unictype/pr_private_use.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_punctuation.h
+++ b/lib/unictype/pr_punctuation.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[27 << 4];
+    /*unsigned*/ int level3[30 << 4];
   }
 u_property_punctuation =
 {
@@ -35,17 +35,17 @@
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -104,8 +104,9 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -146,15 +147,14 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
         3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   416,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -291,7 +291,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000000,
     0x00000600, 0x40000000, 0x00000049, 0x00180000,
-    0xC8003000, 0x00000000, 0x00000000, 0x00003C00,
+    0xC8003600, 0x00000000, 0x00000000, 0x00003C00,
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
@@ -306,7 +306,7 @@
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x00030000, 0x00000000,
+    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -327,6 +327,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
     0x00006000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -338,7 +342,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x003FFF00,
-    0x00000000, 0x00000000, 0x00000060, 0x00000FC0,
+    0x00000000, 0x00000000, 0x00000060, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -347,7 +351,7 @@
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x30FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -355,7 +359,15 @@
     0x00000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
+    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x0000C000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xF0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -377,7 +389,7 @@
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x80000000, 0x00000000, 0x00000000, 0x00000000,
+    0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_quotation_mark.h
+++ b/lib/unictype/pr_quotation_mark.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_radical.h
+++ b/lib/unictype/pr_radical.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_sentence_terminal.h
+++ b/lib/unictype/pr_sentence_terminal.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[13 << 4];
+    /*unsigned*/ int level3[17 << 4];
   }
 u_property_sentence_terminal =
 {
@@ -32,17 +32,17 @@
         2 +   128 * sizeof (short) / sizeof (int) +    96,
         2 +   128 * sizeof (short) / sizeof (int) +   112,
         2 +   128 * sizeof (short) / sizeof (int) +   128,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   144,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   144,
+        2 +   128 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   160,
+        2 +   128 * sizeof (short) / sizeof (int) +   176,
+        2 +   128 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -101,9 +101,9 @@
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   176,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   208,
+        2 +   128 * sizeof (short) / sizeof (int) +   224,
+        2 +   128 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -145,7 +145,7 @@
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   192
+        2 +   128 * sizeof (short) / sizeof (int) +   256
   },
   {
     0x00000000, 0x80004002, 0x00000000, 0x00000000,
@@ -184,15 +184,31 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xCC000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x18000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x30000000, 0x00000380, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00004000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000004, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000C000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00C00000,
+    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_soft_dotted.h
+++ b/lib/unictype/pr_soft_dotted.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[8 << 4];
+    /*unsigned*/ int level3[9 << 4];
   }
 u_property_soft_dotted =
 {
@@ -43,6 +43,12 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -249,14 +255,8 @@
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -303,6 +303,10 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000300, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x10000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000000C, 0x00C00000, 0x00000000,
     0x00000C00, 0xC0000000, 0x00000000, 0x000C0000,
     0x00000000, 0x000000C0, 0x0C000000, 0x00000000,
--- a/lib/unictype/pr_space.h
+++ b/lib/unictype/pr_space.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_terminal_punctuation.h
+++ b/lib/unictype/pr_terminal_punctuation.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[18 << 4];
+    /*unsigned*/ int level3[22 << 4];
   }
 u_property_terminal_punctuation =
 {
@@ -35,17 +35,17 @@
         3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
        -1,
@@ -104,8 +104,9 @@
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -147,13 +148,12 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
@@ -323,15 +323,31 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xEC000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x30000000, 0x00000380, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00004000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000006, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00C00000,
+    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_titlecase.h
+++ b/lib/unictype/pr_titlecase.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_unassigned_code_value.h
+++ b/lib/unictype/pr_unassigned_code_value.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[5 << 7];
-    /*unsigned*/ int level3[49 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_property_unassigned_code_value =
 {
@@ -165,131 +165,131 @@
        16 +   640 * sizeof (short) / sizeof (int) +   544,
        16 +   640 * sizeof (short) / sizeof (int) +   560,
        16 +   640 * sizeof (short) / sizeof (int) +   576,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
        16 +   640 * sizeof (short) / sizeof (int) +   592,
        16 +   640 * sizeof (short) / sizeof (int) +   608,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
+       16 +   640 * sizeof (short) / sizeof (int) +   624,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   624,
        16 +   640 * sizeof (short) / sizeof (int) +   640,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
        16 +   640 * sizeof (short) / sizeof (int) +   656,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
        16 +   640 * sizeof (short) / sizeof (int) +   672,
        16 +   640 * sizeof (short) / sizeof (int) +   688,
        16 +   640 * sizeof (short) / sizeof (int) +   704,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
        16 +   640 * sizeof (short) / sizeof (int) +   720,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   736,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -373,339 +373,339 @@
        -1,
        -1,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   736,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
+       16 +   640 * sizeof (short) / sizeof (int) +   768,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
        -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   784,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
        16 +   640 * sizeof (short) / sizeof (int) +   752,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   720,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   720,
-       16 +   640 * sizeof (short) / sizeof (int) +   768,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
-       16 +   640 * sizeof (short) / sizeof (int) +   720
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   752,
+       16 +   640 * sizeof (short) / sizeof (int) +   800,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   752
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x83CF0000,
-    0x0000280F, 0x00000004, 0x00008000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x83000000,
+    0x0000280F, 0x00000004, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000080, 0x00000000, 0x00000000, 0x00000000,
-    0xFFF00000, 0x0001FFFF, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x37C007F0, 0xF8000001, 0x80000000, 0x00000000,
+    0x30000030, 0x00000001, 0x80000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00004000, 0x00000000, 0x00001800, 0xFFFFC000,
+    0x00004000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07FE0000,
+    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
     0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
-    0x00067811, 0x2C920200, 0xA1FFC678, 0xFFE0003F,
+    0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC670, 0xFFFC003C,
-    0x29C23813, 0x3C0038E7, 0xFF7FC238, 0xF800003F,
-    0x00022011, 0x3C100200, 0xFF9FC220, 0xFFFF003C,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
+    0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x3C000200, 0xFF7FC230, 0xFFFF003C,
+    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000100, 0x0001F800,
-    0x0100F000, 0x20000000, 0xFFFC6000, 0xFFFFFFFF,
-    0x00000000, 0xFC380904, 0xFC000000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000100, 0x0001E000,
+    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
     0x00000000, 0x00000000, 0x7C000000, 0x00000000,
     0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
@@ -721,25 +721,25 @@
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
     0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
     0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x07000000, 0x00001C00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFF800, 0x3FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF0000000, 0x00000000, 0x00000000, 0xFC000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
-    0x00000000, 0x00000000, 0x00000000, 0x000C03F0,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFF0000,
-    0x00000000, 0x00000000, 0x00078000, 0x00000000,
-    0x0000FFE0, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
+    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
+    0x00000000, 0x00000000, 0x00070000, 0x00000000,
+    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -749,25 +749,25 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xE0000000, 0xFFF80000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000F800, 0x0000F000,
+    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xF8000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xFF0FE000,
+    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
     0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
     0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
-    0xFF800000, 0x80808080, 0x80808080, 0xFFFFFFFF,
-    0xCF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFF800000, 0x80808080, 0x80808080, 0x00000000,
+    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000001F, 0x0001E000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0xFFFF0000, 0x0000FFFF,
+    0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
+    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
     0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -779,20 +779,20 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xF8000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
+    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -808,25 +808,29 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
     0x00030000, 0x00000000, 0x0000FF00, 0xC0000000,
-    0xFC000000, 0x0000FFF0, 0x00080000, 0x0020F080,
+    0xFC000000, 0x0000FF80, 0x00080000, 0x0020F080,
     0x00000000, 0x00000000, 0x00000000, 0x60000000,
     0x00000001, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0xE3030303, 0x01FF8080,
     0x00001000, 0x48000080, 0xC000C000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0xF8000000,
     0x00000078, 0x00700000, 0x00000000, 0x00000000,
-    0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xF000F800, 0xFFFFFFFF, 0x0000FFFF, 0xC0000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xE0000000, 0x00000000, 0xFFFE0000, 0xFFFFFFFF,
     0x80000000, 0x0000FFF0, 0xFFFFF800, 0xFFFFFFFF,
     0x40000000, 0x00000000, 0xFFC000F0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -842,7 +846,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
-    0x00000000, 0x00000380, 0x00000000, 0x00000000,
+    0x00000000, 0x00000180, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -856,6 +860,10 @@
     0x00000000, 0x000000C0, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
+    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
--- a/lib/unictype/pr_unified_ideograph.h
+++ b/lib/unictype/pr_unified_ideograph.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -291,7 +291,7 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0x801AC000, 0x0000039A, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_uppercase.h
+++ b/lib/unictype/pr_uppercase.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[12 << 4];
+    /*unsigned*/ int level3[13 << 4];
   }
 u_property_uppercase =
 {
@@ -104,6 +104,113 @@
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -148,115 +255,8 @@
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -285,18 +285,18 @@
     0xB1DBCED6, 0x11AED2D5, 0x4AAAA490, 0x55D25555,
     0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFED740, 0x00000FFB, 0x551C0000, 0xE6905555,
+    0x00000000, 0x00000000, 0x00000000, 0x00450000,
+    0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x00055555, 0xFFFE0000, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x55555555, 0x55555555, 0x55555555, 0x55555555,
-    0x00155555, 0x55555555, 0x55555555, 0x01555555,
+    0x40155555, 0x55555555, 0x55555555, 0x55555555,
     0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
     0x00000000, 0x0F000000, 0x0F000F00, 0x0F001F00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -307,10 +307,14 @@
     0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00200A9D,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
     0x55555555, 0x55555555, 0x55555555, 0x00000005,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00555555, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+    0x00000855, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_variation_selector.h
+++ b/lib/unictype/pr_variation_selector.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_white_space.h
+++ b/lib/unictype/pr_white_space.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/pr_xid_continue.h
+++ b/lib/unictype/pr_xid_continue.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[15];
     short level2[4 << 7];
-    /*unsigned*/ int level3[44 << 4];
+    /*unsigned*/ int level3[45 << 4];
   }
 u_property_xid_continue =
 {
@@ -119,7 +119,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   352,
        16 +   512 * sizeof (short) / sizeof (int) +   368,
        16 +   512 * sizeof (short) / sizeof (int) +   384,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   400,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
@@ -141,7 +141,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   400,
+       16 +   512 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -158,16 +158,16 @@
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   416,
        16 +   512 * sizeof (short) / sizeof (int) +   432,
        16 +   512 * sizeof (short) / sizeof (int) +   448,
        16 +   512 * sizeof (short) / sizeof (int) +   464,
        16 +   512 * sizeof (short) / sizeof (int) +   480,
        16 +   512 * sizeof (short) / sizeof (int) +   496,
        16 +   512 * sizeof (short) / sizeof (int) +   512,
+       16 +   512 * sizeof (short) / sizeof (int) +   528,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   528,
        16 +   512 * sizeof (short) / sizeof (int) +   544,
+       16 +   512 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -179,8 +179,8 @@
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   560,
        16 +   512 * sizeof (short) / sizeof (int) +   576,
+       16 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -266,10 +266,10 @@
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   592,
        16 +   512 * sizeof (short) / sizeof (int) +   608,
        16 +   512 * sizeof (short) / sizeof (int) +   624,
        16 +   512 * sizeof (short) / sizeof (int) +   640,
+       16 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -373,7 +373,7 @@
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   656,
+       16 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -415,10 +415,10 @@
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   672,
+       16 +   512 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -553,35 +553,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3800FFFF,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x38DFFFFF,
+    0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFC7B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
-    0x003F0000, 0x07FFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+    0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
-    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0x00003FFF,
+    0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF800FFCF,
+    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
-    0xFFF987EE, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
+    0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0398F, 0x0002FFC3,
-    0xD63DC7EC, 0xC3FFC718, 0x00803DC7, 0x0000FFC0,
-    0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
+    0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
+    0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
+    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
-    0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE07FF,
+    0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
     0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
-    0xFFFFFFFF, 0x03C7F6FB, 0x03FF03FF, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
+    0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -597,32 +597,32 @@
     0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
     0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
     0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF, 0xC0000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x80000000, 0x00100001, 0x80020000,
-    0x001F0000, 0x00000000, 0x1FFF0000, 0x0000FFE2,
+    0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
-    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
+    0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
     0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE67FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -635,16 +635,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
+    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -664,16 +668,16 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
     0xFFFCFFFF, 0xFFFFFFFF, 0x000000FF, 0x03FF0000,
-    0x0000FFFF, 0x0018000F, 0x0000E000, 0xAA8A0000,
+    0x0000FFFF, 0x0018007F, 0x0000E000, 0xAA8A0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF,
     0x03FF0000, 0x87FFFFFE, 0x07FFFFFE, 0xFFFFFFC0,
     0xFFFFFFFF, 0x7FFFFFFF, 0x1CFCFCFC, 0x00000000,
     0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -682,7 +686,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_xid_start.h
+++ b/lib/unictype/pr_xid_start.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[41 << 4];
+    /*unsigned*/ int level3[42 << 4];
   }
 u_property_xid_start =
 {
@@ -107,7 +107,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   352,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   400,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
@@ -129,7 +129,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   400,
+        4 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -146,16 +146,16 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   416,
         4 +   384 * sizeof (short) / sizeof (int) +   432,
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
         4 +   384 * sizeof (short) / sizeof (int) +   512,
+        4 +   384 * sizeof (short) / sizeof (int) +   528,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   528,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
+        4 +   384 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -167,8 +167,8 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   560,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -361,7 +361,7 @@
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1
   },
@@ -413,35 +413,35 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000401F,
-    0x00000000, 0x00000000, 0x00000000, 0x38000000,
-    0xFFFFD740, 0xFFFFFFFB, 0xFFFF7FFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFC3, 0x0000501F,
+    0x00000000, 0x00000000, 0x00000000, 0x38DF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0x07FFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
-    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0x00003FFF,
+    0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8000003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
-    0xD63DC7E8, 0x03FFC718, 0x00000000, 0x00000000,
-    0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
+    0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
+    0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
     0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
+    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x0005FFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x2005ECAE, 0x3000005F, 0x00000000,
-    0x00000001, 0x00000000, 0xFFFFFEFF, 0x000007FF,
+    0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
     0x00000F00, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000006FB, 0x003F0000, 0x00000000,
-    0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
+    0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
@@ -457,32 +457,32 @@
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000001FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
     0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
     0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
-    0x0000001F, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x00F01FFF,
+    0x000001FF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
-    0xFFFFFFE0, 0xFFFE1FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -495,16 +495,20 @@
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0FFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x07800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -533,7 +537,7 @@
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFFFFFF, 0xFFFFFFFF, 0x0001FFFF, 0x00000000,
     0x7FFFFFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x3FFFFFFF, 0xFFFFFFFF, 0x003EFF0F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -542,7 +546,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x003FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/pr_zero_width.h
+++ b/lib/unictype/pr_zero_width.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -432,7 +432,7 @@
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00300000, 0x00000000, 0x00000000,
-    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC0F,
+    0x0000F800, 0x00007C00, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
--- a/lib/unictype/scripts.h
+++ b/lib/unictype/scripts.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode scripts.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 static const uc_interval_t script_common_intervals[] =
 {
   { 0x0000, 1, 0 }, { 0x0040, 0, 1 },
@@ -12,7 +12,9 @@
   { 0x00F7, 1, 1 },
   { 0x02B9, 1, 0 }, { 0x02DF, 0, 1 },
   { 0x02E5, 1, 0 }, { 0x02FF, 0, 1 },
+  { 0x0374, 1, 1 },
   { 0x037E, 1, 1 },
+  { 0x0385, 1, 1 },
   { 0x0387, 1, 1 },
   { 0x0589, 1, 1 },
   { 0x0600, 1, 0 }, { 0x0603, 0, 1 },
@@ -24,6 +26,7 @@
   { 0x06DD, 1, 1 },
   { 0x0964, 1, 0 }, { 0x0965, 0, 1 },
   { 0x0970, 1, 1 },
+  { 0x0CF1, 1, 0 }, { 0x0CF2, 0, 1 },
   { 0x0E3F, 1, 1 },
   { 0x10FB, 1, 1 },
   { 0x16EB, 1, 0 }, { 0x16ED, 0, 1 },
@@ -31,7 +34,7 @@
   { 0x1802, 1, 0 }, { 0x1803, 0, 1 },
   { 0x1805, 1, 1 },
   { 0x2000, 1, 0 }, { 0x200B, 0, 1 },
-  { 0x200E, 1, 0 }, { 0x2063, 0, 1 },
+  { 0x200E, 1, 0 }, { 0x2064, 0, 1 },
   { 0x206A, 1, 0 }, { 0x2070, 0, 1 },
   { 0x2074, 1, 0 }, { 0x207E, 0, 1 },
   { 0x2080, 1, 0 }, { 0x208E, 0, 1 },
@@ -40,12 +43,14 @@
   { 0x2127, 1, 0 }, { 0x2129, 0, 1 },
   { 0x212C, 1, 0 }, { 0x2131, 0, 1 },
   { 0x2133, 1, 0 }, { 0x214D, 0, 1 },
-  { 0x2153, 1, 0 }, { 0x2183, 0, 1 },
+  { 0x214F, 1, 1 },
+  { 0x2153, 1, 0 }, { 0x215F, 0, 1 },
   { 0x2190, 1, 0 }, { 0x23E7, 0, 1 },
   { 0x2400, 1, 0 }, { 0x2426, 0, 1 },
   { 0x2440, 1, 0 }, { 0x244A, 0, 1 },
-  { 0x2460, 1, 0 }, { 0x269C, 0, 1 },
-  { 0x26A0, 1, 0 }, { 0x26B2, 0, 1 },
+  { 0x2460, 1, 0 }, { 0x269D, 0, 1 },
+  { 0x26A0, 1, 0 }, { 0x26BC, 0, 1 },
+  { 0x26C0, 1, 0 }, { 0x26C3, 0, 1 },
   { 0x2701, 1, 0 }, { 0x2704, 0, 1 },
   { 0x2706, 1, 0 }, { 0x2709, 0, 1 },
   { 0x270C, 1, 0 }, { 0x2727, 0, 1 },
@@ -58,12 +63,11 @@
   { 0x2798, 1, 0 }, { 0x27AF, 0, 1 },
   { 0x27B1, 1, 0 }, { 0x27BE, 0, 1 },
   { 0x27C0, 1, 0 }, { 0x27CA, 0, 1 },
-  { 0x27D0, 1, 0 }, { 0x27EB, 0, 1 },
-  { 0x27F0, 1, 0 }, { 0x27FF, 0, 1 },
-  { 0x2900, 1, 0 }, { 0x2B1A, 0, 1 },
-  { 0x2B20, 1, 0 }, { 0x2B23, 0, 1 },
-  { 0x2E00, 1, 0 }, { 0x2E17, 0, 1 },
-  { 0x2E1C, 1, 0 }, { 0x2E1D, 0, 1 },
+  { 0x27CC, 1, 1 },
+  { 0x27D0, 1, 0 }, { 0x27FF, 0, 1 },
+  { 0x2900, 1, 0 }, { 0x2B4C, 0, 1 },
+  { 0x2B50, 1, 0 }, { 0x2B54, 0, 1 },
+  { 0x2E00, 1, 0 }, { 0x2E30, 0, 1 },
   { 0x2FF0, 1, 0 }, { 0x2FFB, 0, 1 },
   { 0x3000, 1, 0 }, { 0x3004, 0, 1 },
   { 0x3006, 1, 1 },
@@ -74,14 +78,14 @@
   { 0x30A0, 1, 1 },
   { 0x30FB, 1, 0 }, { 0x30FC, 0, 1 },
   { 0x3190, 1, 0 }, { 0x319F, 0, 1 },
-  { 0x31C0, 1, 0 }, { 0x31CF, 0, 1 },
+  { 0x31C0, 1, 0 }, { 0x31E3, 0, 1 },
   { 0x3220, 1, 0 }, { 0x3243, 0, 1 },
   { 0x3250, 1, 0 }, { 0x325F, 0, 1 },
-  { 0x327E, 1, 0 }, { 0x32FE, 0, 1 },
-  { 0x3300, 1, 0 }, { 0x33FF, 0, 1 },
+  { 0x327F, 1, 0 }, { 0x32CF, 0, 1 },
+  { 0x3358, 1, 0 }, { 0x33FF, 0, 1 },
   { 0x4DC0, 1, 0 }, { 0x4DFF, 0, 1 },
-  { 0xA700, 1, 0 }, { 0xA71A, 0, 1 },
-  { 0xA720, 1, 0 }, { 0xA721, 0, 1 },
+  { 0xA700, 1, 0 }, { 0xA721, 0, 1 },
+  { 0xA788, 1, 0 }, { 0xA78A, 0, 1 },
   { 0xFD3E, 1, 0 }, { 0xFD3F, 0, 1 },
   { 0xFDFD, 1, 1 },
   { 0xFE10, 1, 0 }, { 0xFE19, 0, 1 },
@@ -100,9 +104,11 @@
   { 0x10100, 1, 0 }, { 0x10102, 0, 1 },
   { 0x10107, 1, 0 }, { 0x10133, 0, 1 },
   { 0x10137, 1, 0 }, { 0x1013F, 0, 1 },
+  { 0x10190, 1, 0 }, { 0x1019B, 0, 1 },
+  { 0x101D0, 1, 0 }, { 0x101FC, 0, 1 },
   { 0x1D000, 1, 0 }, { 0x1D0F5, 0, 1 },
   { 0x1D100, 1, 0 }, { 0x1D126, 0, 1 },
-  { 0x1D12A, 1, 0 }, { 0x1D166, 0, 1 },
+  { 0x1D129, 1, 0 }, { 0x1D166, 0, 1 },
   { 0x1D16A, 1, 0 }, { 0x1D17A, 0, 1 },
   { 0x1D183, 1, 0 }, { 0x1D184, 0, 1 },
   { 0x1D18C, 1, 0 }, { 0x1D1A9, 0, 1 },
@@ -130,6 +136,8 @@
   { 0x1D552, 1, 0 }, { 0x1D6A5, 0, 1 },
   { 0x1D6A8, 1, 0 }, { 0x1D7CB, 0, 1 },
   { 0x1D7CE, 1, 0 }, { 0x1D7FF, 0, 1 },
+  { 0x1F000, 1, 0 }, { 0x1F02B, 0, 1 },
+  { 0x1F030, 1, 0 }, { 0x1F093, 0, 1 },
   { 0xE0001, 1, 1 },
   { 0xE0020, 1, 0 }, { 0xE007F, 0, 1 }
 };
@@ -148,31 +156,34 @@
   { 0x1D62, 1, 0 }, { 0x1D65, 0, 1 },
   { 0x1D6B, 1, 0 }, { 0x1D77, 0, 1 },
   { 0x1D79, 1, 0 }, { 0x1DBE, 0, 1 },
-  { 0x1E00, 1, 0 }, { 0x1E9B, 0, 1 },
-  { 0x1EA0, 1, 0 }, { 0x1EF9, 0, 1 },
+  { 0x1E00, 1, 0 }, { 0x1EFF, 0, 1 },
   { 0x2071, 1, 1 },
   { 0x207F, 1, 1 },
   { 0x2090, 1, 0 }, { 0x2094, 0, 1 },
   { 0x212A, 1, 0 }, { 0x212B, 0, 1 },
   { 0x2132, 1, 1 },
   { 0x214E, 1, 1 },
-  { 0x2184, 1, 1 },
-  { 0x2C60, 1, 0 }, { 0x2C6C, 0, 1 },
-  { 0x2C74, 1, 0 }, { 0x2C77, 0, 1 },
+  { 0x2160, 1, 0 }, { 0x2188, 0, 1 },
+  { 0x2C60, 1, 0 }, { 0x2C6F, 0, 1 },
+  { 0x2C71, 1, 0 }, { 0x2C7D, 0, 1 },
+  { 0xA722, 1, 0 }, { 0xA787, 0, 1 },
+  { 0xA78B, 1, 0 }, { 0xA78C, 0, 1 },
+  { 0xA7FB, 1, 0 }, { 0xA7FF, 0, 1 },
   { 0xFB00, 1, 0 }, { 0xFB06, 0, 1 },
   { 0xFF21, 1, 0 }, { 0xFF3A, 0, 1 },
   { 0xFF41, 1, 0 }, { 0xFF5A, 0, 1 }
 };
 static const uc_interval_t script_greek_intervals[] =
 {
-  { 0x0374, 1, 0 }, { 0x0375, 0, 1 },
+  { 0x0370, 1, 0 }, { 0x0373, 0, 1 },
+  { 0x0375, 1, 0 }, { 0x0377, 0, 1 },
   { 0x037A, 1, 0 }, { 0x037D, 0, 1 },
-  { 0x0384, 1, 0 }, { 0x0386, 0, 1 },
+  { 0x0384, 1, 1 },
+  { 0x0386, 1, 1 },
   { 0x0388, 1, 0 }, { 0x038A, 0, 1 },
   { 0x038C, 1, 1 },
   { 0x038E, 1, 0 }, { 0x03A1, 0, 1 },
-  { 0x03A3, 1, 0 }, { 0x03CE, 0, 1 },
-  { 0x03D0, 1, 0 }, { 0x03E1, 0, 1 },
+  { 0x03A3, 1, 0 }, { 0x03E1, 0, 1 },
   { 0x03F0, 1, 0 }, { 0x03FF, 0, 1 },
   { 0x1D26, 1, 0 }, { 0x1D2A, 0, 1 },
   { 0x1D5D, 1, 0 }, { 0x1D61, 0, 1 },
@@ -200,10 +211,13 @@
 };
 static const uc_interval_t script_cyrillic_intervals[] =
 {
-  { 0x0400, 1, 0 }, { 0x0486, 0, 1 },
-  { 0x0488, 1, 0 }, { 0x0513, 0, 1 },
+  { 0x0400, 1, 0 }, { 0x0523, 0, 1 },
   { 0x1D2B, 1, 1 },
-  { 0x1D78, 1, 1 }
+  { 0x1D78, 1, 1 },
+  { 0x2DE0, 1, 0 }, { 0x2DFF, 0, 1 },
+  { 0xA640, 1, 0 }, { 0xA65F, 0, 1 },
+  { 0xA662, 1, 0 }, { 0xA673, 0, 1 },
+  { 0xA67C, 1, 0 }, { 0xA697, 0, 1 }
 };
 static const uc_interval_t script_armenian_intervals[] =
 {
@@ -227,16 +241,16 @@
 };
 static const uc_interval_t script_arabic_intervals[] =
 {
-  { 0x060B, 1, 1 },
-  { 0x060D, 1, 0 }, { 0x0615, 0, 1 },
+  { 0x0606, 1, 0 }, { 0x060B, 0, 1 },
+  { 0x060D, 1, 0 }, { 0x061A, 0, 1 },
   { 0x061E, 1, 1 },
-  { 0x0621, 1, 0 }, { 0x063A, 0, 1 },
+  { 0x0621, 1, 0 }, { 0x063F, 0, 1 },
   { 0x0641, 1, 0 }, { 0x064A, 0, 1 },
   { 0x0656, 1, 0 }, { 0x065E, 0, 1 },
   { 0x066A, 1, 0 }, { 0x066F, 0, 1 },
   { 0x0671, 1, 0 }, { 0x06DC, 0, 1 },
   { 0x06DE, 1, 0 }, { 0x06FF, 0, 1 },
-  { 0x0750, 1, 0 }, { 0x076D, 0, 1 },
+  { 0x0750, 1, 0 }, { 0x077F, 0, 1 },
   { 0xFB50, 1, 0 }, { 0xFBB1, 0, 1 },
   { 0xFBD3, 1, 0 }, { 0xFD3D, 0, 1 },
   { 0xFD50, 1, 0 }, { 0xFD8F, 0, 1 },
@@ -259,9 +273,11 @@
 {
   { 0x0901, 1, 0 }, { 0x0939, 0, 1 },
   { 0x093C, 1, 0 }, { 0x094D, 0, 1 },
-  { 0x0950, 1, 0 }, { 0x0954, 0, 1 },
+  { 0x0950, 1, 1 },
+  { 0x0953, 1, 0 }, { 0x0954, 0, 1 },
   { 0x0958, 1, 0 }, { 0x0963, 0, 1 },
   { 0x0966, 1, 0 }, { 0x096F, 0, 1 },
+  { 0x0971, 1, 0 }, { 0x0972, 0, 1 },
   { 0x097B, 1, 0 }, { 0x097F, 0, 1 }
 };
 static const uc_interval_t script_bengali_intervals[] =
@@ -295,9 +311,10 @@
   { 0x0A3E, 1, 0 }, { 0x0A42, 0, 1 },
   { 0x0A47, 1, 0 }, { 0x0A48, 0, 1 },
   { 0x0A4B, 1, 0 }, { 0x0A4D, 0, 1 },
+  { 0x0A51, 1, 1 },
   { 0x0A59, 1, 0 }, { 0x0A5C, 0, 1 },
   { 0x0A5E, 1, 1 },
-  { 0x0A66, 1, 0 }, { 0x0A74, 0, 1 }
+  { 0x0A66, 1, 0 }, { 0x0A75, 0, 1 }
 };
 static const uc_interval_t script_gujarati_intervals[] =
 {
@@ -325,12 +342,12 @@
   { 0x0B2A, 1, 0 }, { 0x0B30, 0, 1 },
   { 0x0B32, 1, 0 }, { 0x0B33, 0, 1 },
   { 0x0B35, 1, 0 }, { 0x0B39, 0, 1 },
-  { 0x0B3C, 1, 0 }, { 0x0B43, 0, 1 },
+  { 0x0B3C, 1, 0 }, { 0x0B44, 0, 1 },
   { 0x0B47, 1, 0 }, { 0x0B48, 0, 1 },
   { 0x0B4B, 1, 0 }, { 0x0B4D, 0, 1 },
   { 0x0B56, 1, 0 }, { 0x0B57, 0, 1 },
   { 0x0B5C, 1, 0 }, { 0x0B5D, 0, 1 },
-  { 0x0B5F, 1, 0 }, { 0x0B61, 0, 1 },
+  { 0x0B5F, 1, 0 }, { 0x0B63, 0, 1 },
   { 0x0B66, 1, 0 }, { 0x0B71, 0, 1 }
 };
 static const uc_interval_t script_tamil_intervals[] =
@@ -348,6 +365,7 @@
   { 0x0BBE, 1, 0 }, { 0x0BC2, 0, 1 },
   { 0x0BC6, 1, 0 }, { 0x0BC8, 0, 1 },
   { 0x0BCA, 1, 0 }, { 0x0BCD, 0, 1 },
+  { 0x0BD0, 1, 1 },
   { 0x0BD7, 1, 1 },
   { 0x0BE6, 1, 0 }, { 0x0BFA, 0, 1 }
 };
@@ -359,12 +377,14 @@
   { 0x0C12, 1, 0 }, { 0x0C28, 0, 1 },
   { 0x0C2A, 1, 0 }, { 0x0C33, 0, 1 },
   { 0x0C35, 1, 0 }, { 0x0C39, 0, 1 },
-  { 0x0C3E, 1, 0 }, { 0x0C44, 0, 1 },
+  { 0x0C3D, 1, 0 }, { 0x0C44, 0, 1 },
   { 0x0C46, 1, 0 }, { 0x0C48, 0, 1 },
   { 0x0C4A, 1, 0 }, { 0x0C4D, 0, 1 },
   { 0x0C55, 1, 0 }, { 0x0C56, 0, 1 },
-  { 0x0C60, 1, 0 }, { 0x0C61, 0, 1 },
-  { 0x0C66, 1, 0 }, { 0x0C6F, 0, 1 }
+  { 0x0C58, 1, 0 }, { 0x0C59, 0, 1 },
+  { 0x0C60, 1, 0 }, { 0x0C63, 0, 1 },
+  { 0x0C66, 1, 0 }, { 0x0C6F, 0, 1 },
+  { 0x0C78, 1, 0 }, { 0x0C7F, 0, 1 }
 };
 static const uc_interval_t script_kannada_intervals[] =
 {
@@ -380,8 +400,7 @@
   { 0x0CD5, 1, 0 }, { 0x0CD6, 0, 1 },
   { 0x0CDE, 1, 1 },
   { 0x0CE0, 1, 0 }, { 0x0CE3, 0, 1 },
-  { 0x0CE6, 1, 0 }, { 0x0CEF, 0, 1 },
-  { 0x0CF1, 1, 0 }, { 0x0CF2, 0, 1 }
+  { 0x0CE6, 1, 0 }, { 0x0CEF, 0, 1 }
 };
 static const uc_interval_t script_malayalam_intervals[] =
 {
@@ -390,12 +409,13 @@
   { 0x0D0E, 1, 0 }, { 0x0D10, 0, 1 },
   { 0x0D12, 1, 0 }, { 0x0D28, 0, 1 },
   { 0x0D2A, 1, 0 }, { 0x0D39, 0, 1 },
-  { 0x0D3E, 1, 0 }, { 0x0D43, 0, 1 },
+  { 0x0D3D, 1, 0 }, { 0x0D44, 0, 1 },
   { 0x0D46, 1, 0 }, { 0x0D48, 0, 1 },
   { 0x0D4A, 1, 0 }, { 0x0D4D, 0, 1 },
   { 0x0D57, 1, 1 },
-  { 0x0D60, 1, 0 }, { 0x0D61, 0, 1 },
-  { 0x0D66, 1, 0 }, { 0x0D6F, 0, 1 }
+  { 0x0D60, 1, 0 }, { 0x0D63, 0, 1 },
+  { 0x0D66, 1, 0 }, { 0x0D75, 0, 1 },
+  { 0x0D79, 1, 0 }, { 0x0D7F, 0, 1 }
 };
 static const uc_interval_t script_sinhala_intervals[] =
 {
@@ -440,21 +460,17 @@
 static const uc_interval_t script_tibetan_intervals[] =
 {
   { 0x0F00, 1, 0 }, { 0x0F47, 0, 1 },
-  { 0x0F49, 1, 0 }, { 0x0F6A, 0, 1 },
+  { 0x0F49, 1, 0 }, { 0x0F6C, 0, 1 },
   { 0x0F71, 1, 0 }, { 0x0F8B, 0, 1 },
   { 0x0F90, 1, 0 }, { 0x0F97, 0, 1 },
   { 0x0F99, 1, 0 }, { 0x0FBC, 0, 1 },
   { 0x0FBE, 1, 0 }, { 0x0FCC, 0, 1 },
-  { 0x0FCF, 1, 0 }, { 0x0FD1, 0, 1 }
+  { 0x0FCE, 1, 0 }, { 0x0FD4, 0, 1 }
 };
 static const uc_interval_t script_myanmar_intervals[] =
 {
-  { 0x1000, 1, 0 }, { 0x1021, 0, 1 },
-  { 0x1023, 1, 0 }, { 0x1027, 0, 1 },
-  { 0x1029, 1, 0 }, { 0x102A, 0, 1 },
-  { 0x102C, 1, 0 }, { 0x1032, 0, 1 },
-  { 0x1036, 1, 0 }, { 0x1039, 0, 1 },
-  { 0x1040, 1, 0 }, { 0x1059, 0, 1 }
+  { 0x1000, 1, 0 }, { 0x1099, 0, 1 },
+  { 0x109E, 1, 0 }, { 0x109F, 0, 1 }
 };
 static const uc_interval_t script_georgian_intervals[] =
 {
@@ -470,7 +486,7 @@
   { 0x11A8, 1, 0 }, { 0x11F9, 0, 1 },
   { 0x3131, 1, 0 }, { 0x318E, 0, 1 },
   { 0x3200, 1, 0 }, { 0x321E, 0, 1 },
-  { 0x3260, 1, 0 }, { 0x327D, 0, 1 },
+  { 0x3260, 1, 0 }, { 0x327E, 0, 1 },
   { 0xAC00, 1, 0 }, { 0xD7A3, 0, 1 },
   { 0xFFA0, 1, 0 }, { 0xFFBE, 0, 1 },
   { 0xFFC2, 1, 0 }, { 0xFFC7, 0, 1 },
@@ -539,7 +555,7 @@
   { 0x1806, 1, 0 }, { 0x180E, 0, 1 },
   { 0x1810, 1, 0 }, { 0x1819, 0, 1 },
   { 0x1820, 1, 0 }, { 0x1877, 0, 1 },
-  { 0x1880, 1, 0 }, { 0x18A9, 0, 1 }
+  { 0x1880, 1, 0 }, { 0x18AA, 0, 1 }
 };
 static const uc_interval_t script_hiragana_intervals[] =
 {
@@ -551,12 +567,14 @@
   { 0x30A1, 1, 0 }, { 0x30FA, 0, 1 },
   { 0x30FD, 1, 0 }, { 0x30FF, 0, 1 },
   { 0x31F0, 1, 0 }, { 0x31FF, 0, 1 },
+  { 0x32D0, 1, 0 }, { 0x32FE, 0, 1 },
+  { 0x3300, 1, 0 }, { 0x3357, 0, 1 },
   { 0xFF66, 1, 0 }, { 0xFF6F, 0, 1 },
   { 0xFF71, 1, 0 }, { 0xFF9D, 0, 1 }
 };
 static const uc_interval_t script_bopomofo_intervals[] =
 {
-  { 0x3105, 1, 0 }, { 0x312C, 0, 1 },
+  { 0x3105, 1, 0 }, { 0x312D, 0, 1 },
   { 0x31A0, 1, 0 }, { 0x31B7, 0, 1 }
 };
 static const uc_interval_t script_han_intervals[] =
@@ -569,7 +587,7 @@
   { 0x3021, 1, 0 }, { 0x3029, 0, 1 },
   { 0x3038, 1, 0 }, { 0x303B, 0, 1 },
   { 0x3400, 1, 0 }, { 0x4DB5, 0, 1 },
-  { 0x4E00, 1, 0 }, { 0x9FBB, 0, 1 },
+  { 0x4E00, 1, 0 }, { 0x9FC3, 0, 1 },
   { 0xF900, 1, 0 }, { 0xFA2D, 0, 1 },
   { 0xFA30, 1, 0 }, { 0xFA6A, 0, 1 },
   { 0xFA70, 1, 0 }, { 0xFAD9, 0, 1 },
@@ -599,14 +617,16 @@
   { 0x0300, 1, 0 }, { 0x036F, 0, 1 },
   { 0x064B, 1, 0 }, { 0x0655, 0, 1 },
   { 0x0670, 1, 1 },
-  { 0x1DC0, 1, 0 }, { 0x1DCA, 0, 1 },
+  { 0x0951, 1, 0 }, { 0x0952, 0, 1 },
+  { 0x1DC0, 1, 0 }, { 0x1DE6, 0, 1 },
   { 0x1DFE, 1, 0 }, { 0x1DFF, 0, 1 },
   { 0x200C, 1, 0 }, { 0x200D, 0, 1 },
-  { 0x20D0, 1, 0 }, { 0x20EF, 0, 1 },
+  { 0x20D0, 1, 0 }, { 0x20F0, 0, 1 },
   { 0x302A, 1, 0 }, { 0x302F, 0, 1 },
   { 0x3099, 1, 0 }, { 0x309A, 0, 1 },
   { 0xFE00, 1, 0 }, { 0xFE0F, 0, 1 },
-  { 0xFE20, 1, 0 }, { 0xFE23, 0, 1 },
+  { 0xFE20, 1, 0 }, { 0xFE26, 0, 1 },
+  { 0x101FD, 1, 1 },
   { 0x1D167, 1, 0 }, { 0x1D169, 0, 1 },
   { 0x1D17B, 1, 0 }, { 0x1D182, 0, 1 },
   { 0x1D185, 1, 0 }, { 0x1D18B, 0, 1 },
@@ -754,7 +774,60 @@
 {
   { 0x07C0, 1, 0 }, { 0x07FA, 0, 1 }
 };
-static const uc_script_t scripts[66] =
+static const uc_interval_t script_sundanese_intervals[] =
+{
+  { 0x1B80, 1, 0 }, { 0x1BAA, 0, 1 },
+  { 0x1BAE, 1, 0 }, { 0x1BB9, 0, 1 }
+};
+static const uc_interval_t script_lepcha_intervals[] =
+{
+  { 0x1C00, 1, 0 }, { 0x1C37, 0, 1 },
+  { 0x1C3B, 1, 0 }, { 0x1C49, 0, 1 },
+  { 0x1C4D, 1, 0 }, { 0x1C4F, 0, 1 }
+};
+static const uc_interval_t script_ol_chiki_intervals[] =
+{
+  { 0x1C50, 1, 0 }, { 0x1C7F, 0, 1 }
+};
+static const uc_interval_t script_vai_intervals[] =
+{
+  { 0xA500, 1, 0 }, { 0xA62B, 0, 1 }
+};
+static const uc_interval_t script_saurashtra_intervals[] =
+{
+  { 0xA880, 1, 0 }, { 0xA8C4, 0, 1 },
+  { 0xA8CE, 1, 0 }, { 0xA8D9, 0, 1 }
+};
+static const uc_interval_t script_kayah_li_intervals[] =
+{
+  { 0xA900, 1, 0 }, { 0xA92F, 0, 1 }
+};
+static const uc_interval_t script_rejang_intervals[] =
+{
+  { 0xA930, 1, 0 }, { 0xA953, 0, 1 },
+  { 0xA95F, 1, 1 }
+};
+static const uc_interval_t script_lycian_intervals[] =
+{
+  { 0x10280, 1, 0 }, { 0x1029C, 0, 1 }
+};
+static const uc_interval_t script_carian_intervals[] =
+{
+  { 0x102A0, 1, 0 }, { 0x102D0, 0, 1 }
+};
+static const uc_interval_t script_lydian_intervals[] =
+{
+  { 0x10920, 1, 0 }, { 0x10939, 0, 1 },
+  { 0x1093F, 1, 1 }
+};
+static const uc_interval_t script_cham_intervals[] =
+{
+  { 0xAA00, 1, 0 }, { 0xAA36, 0, 1 },
+  { 0xAA40, 1, 0 }, { 0xAA4D, 0, 1 },
+  { 0xAA50, 1, 0 }, { 0xAA59, 0, 1 },
+  { 0xAA5C, 1, 0 }, { 0xAA5F, 0, 1 }
+};
+static const uc_script_t scripts[77] =
 {
   {
     sizeof (script_common_intervals) / sizeof (uc_interval_t),
@@ -1085,6 +1158,61 @@
     sizeof (script_nko_intervals) / sizeof (uc_interval_t),
     script_nko_intervals,
     "Nko"
+  },
+  {
+    sizeof (script_sundanese_intervals) / sizeof (uc_interval_t),
+    script_sundanese_intervals,
+    "Sundanese"
+  },
+  {
+    sizeof (script_lepcha_intervals) / sizeof (uc_interval_t),
+    script_lepcha_intervals,
+    "Lepcha"
+  },
+  {
+    sizeof (script_ol_chiki_intervals) / sizeof (uc_interval_t),
+    script_ol_chiki_intervals,
+    "Ol_Chiki"
+  },
+  {
+    sizeof (script_vai_intervals) / sizeof (uc_interval_t),
+    script_vai_intervals,
+    "Vai"
+  },
+  {
+    sizeof (script_saurashtra_intervals) / sizeof (uc_interval_t),
+    script_saurashtra_intervals,
+    "Saurashtra"
+  },
+  {
+    sizeof (script_kayah_li_intervals) / sizeof (uc_interval_t),
+    script_kayah_li_intervals,
+    "Kayah_Li"
+  },
+  {
+    sizeof (script_rejang_intervals) / sizeof (uc_interval_t),
+    script_rejang_intervals,
+    "Rejang"
+  },
+  {
+    sizeof (script_lycian_intervals) / sizeof (uc_interval_t),
+    script_lycian_intervals,
+    "Lycian"
+  },
+  {
+    sizeof (script_carian_intervals) / sizeof (uc_interval_t),
+    script_carian_intervals,
+    "Carian"
+  },
+  {
+    sizeof (script_lydian_intervals) / sizeof (uc_interval_t),
+    script_lydian_intervals,
+    "Lydian"
+  },
+  {
+    sizeof (script_cham_intervals) / sizeof (uc_interval_t),
+    script_cham_intervals,
+    "Cham"
   }
 };
 #define script_header_0 16
@@ -1097,7 +1225,7 @@
   {
     int level1[15];
     short level2[4 << 9];
-    unsigned char level3[127 << 7];
+    unsigned char level3[138 << 7];
   }
 u_script =
 {
@@ -1107,25 +1235,25 @@
   },
   {
         0,   128,   256,   256,   256,   384,   512,   640,
-      768,   896,  1024,  1152,  1280,  1408,  1536,  1664,
-       -1,    -1,  1792,  1920,  2048,  2176,  2304,  2432,
-     2560,  2688,  2816,  2944,  3072,  3200,  3328,  3456,
-     3584,  3712,  3840,  3968,  4096,  4224,  4352,  4480,
-     4608,  4736,  4736,  4736,  4864,  4992,  5120,  5248,
-     5376,  5504,  5632,  5760,  5888,    -1,  6016,    -1,
-       -1,    -1,  6144,  6272,   256,  6400,  6528,  6656,
+      768,   768,   896,  1024,  1152,  1280,  1408,  1536,
+       -1,    -1,  1664,  1792,  1920,  2048,  2176,  2304,
+     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
+     3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
+     4480,  4608,  4608,  4608,  4736,  4864,  4992,  5120,
+     5248,  5376,  5504,  5632,  5760,    -1,  5888,  6016,
+     6144,    -1,  6272,  6400,   256,   256,  6528,  6656,
      6784,  6912,  7040,  7168,  7296,  7296,  7296,  7424,
      7552,  7296,  7296,  7296,  7296,  7680,  7808,  7936,
      8064,  8064,  7296,  7296,  7296,  7296,  8192,    -1,
      8320,  8448,  8576,  8704,  8832,  8960,  9088,  9216,
-     9344,  9472,  9600,  9728,  9856,  9984,  7296,  7296,
+     9344,  9472,  9600,  9728,  9856,  9984, 10112,  7296,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
-     9088,  9088,  9088, 10112,  9088,  9088,  9088,  9088,
+     9088,  9088,  9088, 10240,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
@@ -1145,21 +1273,21 @@
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
-     9088,  9088,  9088,  9088,  9088,  9088,  9088, 10240,
-    10368, 10368, 10368, 10368, 10368, 10368, 10368, 10368,
-    10368, 10496,    -1,    -1,    -1,    -1, 10624,    -1,
-    10752,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 10880,
-    10880, 10880, 10880, 10880, 10880, 10880, 10880, 11008,
+     9088,  9088,  9088,  9088,  9088,  9088,  9088, 10368,
+    10496, 10496, 10496, 10496, 10496, 10496, 10496, 10496,
+    10496, 10624, 10752, 10752, 10880, 11008, 11136, 11264,
+    11392, 11520, 11648,    -1, 11776,    -1,    -1,    -1,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
+    11904, 11904, 11904, 11904, 11904, 11904, 11904, 12032,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1168,18 +1296,18 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  9088,  9088, 11136, 11264, 11392, 11520,
-    11648, 11648, 11776, 11904, 12032, 12160, 12288, 12416,
-    12544, 12672, 12800, 12928,    -1,    -1, 13056, 13184,
-    13312, 13440,    -1,    -1,    -1,    -1,    -1,    -1,
-    13568,    -1, 13696,    -1, 13824,    -1,    -1,    -1,
+       -1,    -1,  9088,  9088, 12160, 12288, 12416, 12544,
+    12672, 12672, 12800, 12928, 13056, 13184, 13312, 13440,
+    13568, 13696, 13824, 13952,    -1, 14080, 14208, 14336,
+    14464, 14592,    -1,    -1,    -1,    -1,    -1,    -1,
+    14720,    -1, 14848,    -1, 14976,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    13952, 13952, 13952, 13952, 13952, 13952, 14080,    -1,
-    14208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    15104, 15104, 15104, 15104, 15104, 15104, 15232,    -1,
+    15360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1222,15 +1350,15 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     7296, 14336, 14464, 14592, 14720,    -1, 14848,    -1,
-    14976, 15104, 15232,  7296,  7296, 15360,  7296, 15488,
+     7296, 15488, 15616, 15744, 15872,    -1, 16000,    -1,
+    16128, 16256, 16384,  7296,  7296, 16512,  7296, 16640,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    16768, 16896,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1275,7 +1403,7 @@
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
-     9088,  9088,  9088,  9088,  9088, 15616,    -1,    -1,
+     9088,  9088,  9088,  9088,  9088, 17024,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1296,9 +1424,9 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9088,  9088,  9088,  9088, 15744,    -1,    -1,    -1,
+     9088,  9088,  9088,  9088, 17152,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    15872,    -1, 16000, 16128,    -1,    -1,    -1,    -1,
+    17280,    -1, 17408, 17536,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1442,9 +1570,9 @@
      40,  40,  40,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,  40,  40,
-    255, 255, 255, 255,   2,   2, 255, 255,
+      2,   2,   2,   2,   0,   2,   2,   2,
     255, 255,   2,   2,   2,   2,   0, 255,
-    255, 255, 255, 255,   2,   2,   2,   0,
+    255, 255, 255, 255,   2,   0,   2,   0,
       2,   2,   2, 255,   2, 255,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
@@ -1453,7 +1581,7 @@
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
-      2,   2,   2,   2,   2,   2,   2, 255,
+      2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,  54,  54,  54,  54,  54,  54,
@@ -1476,28 +1604,12 @@
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3, 255,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
     255,   4,   4,   4,   4,   4,   4,   4,
       4,   4,   4,   4,   4,   4,   4,   4,
       4,   4,   4,   4,   4,   4,   4,   4,
@@ -1524,14 +1636,14 @@
       5,   5,   5, 255, 255, 255, 255, 255,
       5,   5,   5,   5,   5, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-      0,   0,   0,   0, 255, 255, 255, 255,
-    255, 255, 255,   6,   0,   6,   6,   6,
-      6,   6,   6,   6,   6,   6, 255, 255,
-    255, 255, 255,   0, 255, 255,   6,   0,
+      0,   0,   0,   0, 255, 255,   6,   6,
+      6,   6,   6,   6,   0,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   0, 255, 255,   6,   0,
     255,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
-      6,   6,   6, 255, 255, 255, 255, 255,
+      6,   6,   6,   6,   6,   6,   6,   6,
       0,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,   6,   6,
@@ -1569,9 +1681,9 @@
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
-      6,   6,   6,   6,   6,   6, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
       8,   8,   8,   8,   8,   8,   8,   8,
       8,   8,   8,   8,   8,   8,   8,   8,
       8,   8,   8,   8,   8,   8,   8,   8,
@@ -1598,11 +1710,11 @@
       9,   9, 255, 255,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9, 255, 255,
-      9,   9,   9,   9,   9, 255, 255, 255,
+      9,  40,  40,   9,   9, 255, 255, 255,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   0,   0,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
-      0, 255, 255, 255, 255, 255, 255, 255,
+      0,   9,   9, 255, 255, 255, 255, 255,
     255, 255, 255,   9,   9,   9,   9,   9,
     255,  10,  10,  10, 255,  10,  10,  10,
      10,  10,  10,  10,  10, 255, 255,  10,
@@ -1630,11 +1742,11 @@
      11,  11, 255, 255,  11, 255,  11,  11,
      11,  11,  11, 255, 255, 255, 255,  11,
      11, 255, 255,  11,  11,  11, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+    255,  11, 255, 255, 255, 255, 255, 255,
     255,  11,  11,  11,  11, 255,  11, 255,
     255, 255, 255, 255, 255, 255,  11,  11,
      11,  11,  11,  11,  11,  11,  11,  11,
-     11,  11,  11,  11,  11, 255, 255, 255,
+     11,  11,  11,  11,  11,  11, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255,  12,  12,  12, 255,  12,  12,  12,
      12,  12,  12,  12,  12,  12, 255,  12,
@@ -1660,11 +1772,11 @@
      13, 255,  13,  13,  13,  13,  13,  13,
      13, 255,  13,  13, 255,  13,  13,  13,
      13,  13, 255, 255,  13,  13,  13,  13,
-     13,  13,  13,  13, 255, 255, 255,  13,
+     13,  13,  13,  13,  13, 255, 255,  13,
      13, 255, 255,  13,  13,  13, 255, 255,
     255, 255, 255, 255, 255, 255,  13,  13,
     255, 255, 255, 255,  13,  13, 255,  13,
-     13,  13, 255, 255, 255, 255,  13,  13,
+     13,  13,  13,  13, 255, 255,  13,  13,
      13,  13,  13,  13,  13,  13,  13,  13,
      13,  13, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -1678,7 +1790,7 @@
      14,  14, 255, 255, 255, 255,  14,  14,
      14,  14,  14, 255, 255, 255,  14,  14,
      14, 255,  14,  14,  14,  14, 255, 255,
-    255, 255, 255, 255, 255, 255, 255,  14,
+     14, 255, 255, 255, 255, 255, 255,  14,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255,  14,  14,
      14,  14,  14,  14,  14,  14,  14,  14,
@@ -1691,15 +1803,15 @@
      15,  15,  15,  15,  15,  15,  15,  15,
      15, 255,  15,  15,  15,  15,  15,  15,
      15,  15,  15,  15, 255,  15,  15,  15,
-     15,  15, 255, 255, 255, 255,  15,  15,
+     15,  15, 255, 255, 255,  15,  15,  15,
      15,  15,  15,  15,  15, 255,  15,  15,
      15, 255,  15,  15,  15,  15, 255, 255,
     255, 255, 255, 255, 255,  15,  15, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-     15,  15, 255, 255, 255, 255,  15,  15,
+     15,  15, 255, 255, 255, 255, 255, 255,
+     15,  15,  15,  15, 255, 255,  15,  15,
      15,  15,  15,  15,  15,  15,  15,  15,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     15,  15,  15,  15,  15,  15,  15,  15,
     255, 255,  16,  16, 255,  16,  16,  16,
      16,  16,  16,  16,  16, 255,  16,  16,
      16, 255,  16,  16,  16,  16,  16,  16,
@@ -1714,7 +1826,7 @@
     255, 255, 255, 255, 255, 255,  16, 255,
      16,  16,  16,  16, 255, 255,  16,  16,
      16,  16,  16,  16,  16,  16,  16,  16,
-    255,  16,  16, 255, 255, 255, 255, 255,
+    255,   0,   0, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255,  17,  17, 255,  17,  17,  17,
      17,  17,  17,  17,  17, 255,  17,  17,
@@ -1723,15 +1835,15 @@
      17,  17,  17,  17,  17,  17,  17,  17,
      17, 255,  17,  17,  17,  17,  17,  17,
      17,  17,  17,  17,  17,  17,  17,  17,
-     17,  17, 255, 255, 255, 255,  17,  17,
-     17,  17,  17,  17, 255, 255,  17,  17,
+     17,  17, 255, 255, 255,  17,  17,  17,
+     17,  17,  17,  17,  17, 255,  17,  17,
      17, 255,  17,  17,  17,  17, 255, 255,
     255, 255, 255, 255, 255, 255, 255,  17,
     255, 255, 255, 255, 255, 255, 255, 255,
-     17,  17, 255, 255, 255, 255,  17,  17,
+     17,  17,  17,  17, 255, 255,  17,  17,
      17,  17,  17,  17,  17,  17,  17,  17,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     17,  17,  17,  17,  17,  17, 255, 255,
+    255,  17,  17,  17,  17,  17,  17,  17,
     255, 255,  18,  18, 255,  18,  18,  18,
      18,  18,  18,  18,  18,  18,  18,  18,
      18,  18,  18,  18,  18,  18,  18, 255,
@@ -1793,7 +1905,7 @@
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
-     21,  21,  21, 255, 255, 255, 255, 255,
+     21,  21,  21,  21,  21, 255, 255, 255,
     255,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
@@ -1805,8 +1917,8 @@
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21, 255,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
-     21,  21,  21,  21,  21, 255, 255,  21,
-     21,  21, 255, 255, 255, 255, 255, 255,
+     21,  21,  21,  21,  21, 255,  21,  21,
+     21,  21,  21,  21,  21, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -1816,22 +1928,22 @@
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
-     22,  22, 255,  22,  22,  22,  22,  22,
-    255,  22,  22, 255,  22,  22,  22,  22,
-     22,  22,  22, 255, 255, 255,  22,  22,
-     22,  22, 255, 255, 255, 255, 255, 255,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
-     22,  22, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22, 255, 255, 255, 255,  22,  22,
      23,  23,  23,  23,  23,  23,  23,  23,
      23,  23,  23,  23,  23,  23,  23,  23,
      23,  23,  23,  23,  23,  23,  23,  23,
@@ -2057,7 +2169,7 @@
      31,  31,  31,  31,  31,  31,  31,  31,
      31,  31,  31,  31,  31,  31,  31,  31,
      31,  31,  31,  31,  31,  31,  31,  31,
-     31,  31, 255, 255, 255, 255, 255, 255,
+     31,  31,  31, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2132,6 +2244,38 @@
      61,  61,  61,  61,  61,  61,  61,  61,
      61,  61,  61,  61,  61,  61,  61,  61,
      61,  61,  61,  61,  61, 255, 255, 255,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66,  66, 255, 255, 255,  66,  66,
+     66,  66,  66,  66,  66,  66,  66,  66,
+     66,  66, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+    255, 255, 255,  67,  67,  67,  67,  67,
+     67,  67,  67,  67,  67,  67,  67,  67,
+     67,  67, 255, 255, 255,  67,  67,  67,
+     68,  68,  68,  68,  68,  68,  68,  68,
+     68,  68,  68,  68,  68,  68,  68,  68,
+     68,  68,  68,  68,  68,  68,  68,  68,
+     68,  68,  68,  68,  68,  68,  68,  68,
+     68,  68,  68,  68,  68,  68,  68,  68,
+     68,  68,  68,  68,  68,  68,  68,  68,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
@@ -2157,29 +2301,13 @@
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   2,
      40,  40,  40,  40,  40,  40,  40,  40,
-     40,  40,  40, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     40,  40,  40,  40,  40,  40,  40,  40,
+     40,  40,  40,  40,  40,  40,  40,  40,
+     40,  40,  40,  40,  40,  40,  40,  40,
+     40,  40,  40,  40,  40,  40,  40, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255,  40,  40,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1, 255, 255, 255, 255,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1, 255, 255, 255, 255, 255, 255,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2, 255, 255,
@@ -2224,7 +2352,7 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0, 255, 255, 255, 255,
+      0,   0,   0,   0,   0, 255, 255, 255,
     255, 255,   0,   0,   0,   0,   0,   0,
       0,   1, 255, 255,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   1,
@@ -2242,7 +2370,7 @@
      40,  40,  40,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,  40,  40,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     40, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2253,15 +2381,15 @@
       0,   0,   1,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1, 255,
+      0,   0,   0,   0,   0,   0,   1,   0,
     255, 255, 255,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   1, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2327,12 +2455,12 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0, 255, 255, 255,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2365,11 +2493,11 @@
     255,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 255, 255, 255, 255, 255,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0, 255, 255, 255, 255,
+      0,   0,   0, 255,   0, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
      52,  52,  52,  52,  52,  52,  52,  52,
@@ -2391,14 +2519,14 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 255, 255, 255, 255, 255,
-      0,   0,   0,   0, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 255, 255, 255,
+      0,   0,   0,   0,   0, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2417,9 +2545,9 @@
      56,  56,  56,  56,  56,  56,  56,  56,
      56,  56,  56,  56,  56,  56,  56, 255,
       1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1, 255, 255, 255,
-    255, 255, 255, 255,   1,   1,   1,   1,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      1,   1,   1,   1,   1,   1,   1,   1,
+    255,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1, 255, 255,
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
@@ -2464,17 +2592,17 @@
      25,  25,  25,  25,  25,  25,  25, 255,
      25,  25,  25,  25,  25,  25,  25, 255,
      25,  25,  25,  25,  25,  25,  25, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    255, 255, 255, 255,   0,   0, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2569,7 +2697,7 @@
      34,  34,  34,  34,  34,  34,  34,  34,
      34,  34,  34,  34,  34,  34,  34,  34,
      34,  34,  34,  34,  34,  34,  34,  34,
-     34,  34,  34,  34,  34, 255, 255, 255,
+     34,  34,  34,  34,  34,  34, 255, 255,
     255,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
@@ -2590,9 +2718,9 @@
     255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
      33,  33,  33,  33,  33,  33,  33,  33,
      33,  33,  33,  33,  33,  33,  33,  33,
@@ -2611,23 +2739,39 @@
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0, 255,
+     24,  24,  24,  24,  24,  24,  24,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33, 255,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+     33,  33,  33,  33,  33,  33,  33,  33,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
@@ -2651,6 +2795,7 @@
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2659,7 +2804,6 @@
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
      36,  36,  36,  36,  36,  36,  36,  36,
      36,  36,  36,  36,  36,  36,  36,  36,
      36,  36,  36,  36,  36,  36,  36,  36,
@@ -2692,22 +2836,86 @@
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 255, 255, 255, 255, 255,
-      0,   0, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69,  69,  69,  69,  69,
+     69,  69,  69,  69, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+    255, 255,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3, 255, 255, 255, 255,
+    255, 255, 255, 255,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      0,   0,   0,   1,   1, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255,   1,   1,   1,   1,   1,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
@@ -2724,6 +2932,54 @@
      64,  64,  64,  64,  64,  64,  64,  64,
      64,  64,  64,  64,  64,  64,  64,  64,
     255, 255, 255, 255, 255, 255, 255, 255,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70,  70,  70,  70, 255, 255, 255,
+    255, 255, 255, 255, 255, 255,  70,  70,
+     70,  70,  70,  70,  70,  70,  70,  70,
+     70,  70, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     71,  71,  71,  71,  71,  71,  71,  71,
+     72,  72,  72,  72,  72,  72,  72,  72,
+     72,  72,  72,  72,  72,  72,  72,  72,
+     72,  72,  72,  72,  72,  72,  72,  72,
+     72,  72,  72,  72,  72,  72,  72,  72,
+     72,  72,  72,  72, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255,  72,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76,  76, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76,  76,  76,  76,  76, 255, 255,
+     76,  76,  76,  76,  76,  76,  76,  76,
+     76,  76, 255, 255,  76,  76,  76,  76,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
@@ -2872,7 +3128,7 @@
      40,  40,  40,  40,  40,  40,  40,  40,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0, 255, 255, 255, 255, 255, 255,
-     40,  40,  40,  40, 255, 255, 255, 255,
+     40,  40,  40,  40,  40,  40,  40, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2982,15 +3238,31 @@
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,  40, 255, 255,
+     73,  73,  73,  73,  73,  73,  73,  73,
+     73,  73,  73,  73,  73,  73,  73,  73,
+     73,  73,  73,  73,  73,  73,  73,  73,
+     73,  73,  73,  73,  73, 255, 255, 255,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74,  74,  74,  74,  74,  74,  74,  74,
+     74, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -3080,10 +3352,10 @@
      63,  63,  63,  63,  63,  63,  63,  63,
      63,  63,  63,  63,  63,  63,  63,  63,
      63,  63, 255, 255, 255, 255, 255,  63,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     75,  75,  75,  75,  75,  75,  75,  75,
+     75,  75,  75,  75,  75,  75,  75,  75,
+     75,  75,  75,  75,  75,  75,  75,  75,
+     75,  75, 255, 255, 255, 255, 255,  75,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -3177,7 +3449,7 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0, 255,
-    255, 255,   0,   0,   0,   0,   0,   0,
+    255,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -3316,6 +3588,38 @@
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
--- a/lib/unictype/scripts_byname.gperf
+++ b/lib/unictype/scripts_byname.gperf
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode scripts.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 struct named_script { const char *name; unsigned int index; };
 %struct-type
 %language=ANSI-C
@@ -76,3 +76,14 @@
 Phoenician, 63
 Phags_Pa, 64
 Nko, 65
+Sundanese, 66
+Lepcha, 67
+Ol_Chiki, 68
+Vai, 69
+Saurashtra, 70
+Kayah_Li, 71
+Rejang, 72
+Lycian, 73
+Carian, 74
+Lydian, 75
+Cham, 76
--- a/lib/unictype/sy_c_ident.h
+++ b/lib/unictype/sy_c_ident.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define identsyntax_header_0 12
 #define identsyntax_header_1 14
 #define identsyntax_header_2 7
--- a/lib/unictype/sy_c_whitespace.h
+++ b/lib/unictype/sy_c_whitespace.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unictype/sy_java_ident.h
+++ b/lib/unictype/sy_java_ident.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define identsyntax_header_0 12
 #define identsyntax_header_1 225
 #define identsyntax_header_2 7
@@ -11,7 +11,7 @@
   {
     int level1[225];
     short level2[16 << 5];
-    unsigned short level3[103 * 16];
+    unsigned short level3[113 * 16];
   }
 u_java_ident =
 {
@@ -53,20 +53,20 @@
      2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
      3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
      4480,   256,   256,   256,  4608,  4736,  4864,  4992,
-     5120,  5248,  5376,  5504,  5632,    -1,  5760,    -1,
-       -1,    -1,   256,  5888,   256,  6016,  6144,  6272,
-     6400,  6528,  6656,  6784,    -1,    -1,    -1,    -1,
+     5120,  5248,  5376,  5504,  5632,    -1,  5760,  5888,
+     6016,    -1,   256,  6144,   256,   256,  6272,  6400,
+     6528,  6656,  6784,  6912,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     6912,  7040,  7168,  7296,    -1,    -1,    -1,    -1,
-     7424,  7552,  7680,  7808,    -1,    -1,    -1,    -1,
+     7040,  7168,  7296,  7424,  7552,    -1,    -1,    -1,
+     7680,  7808,  7936,  8064,    -1,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,  7936,   256,   256,   256,   256,
+      256,   256,   256,  8192,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
@@ -74,40 +74,40 @@
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256,   256,   256,  8064,
+      256,   256,   256,   256,   256,   256,   256,  8320,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,  8192,    -1,    -1,    -1,    -1,  8320,    -1,
-     8448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,  8448,   256,   256,  8576,  8704,  8832,  8960,
+     9088,  9216,  9344,    -1,  9472,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256,   256,   256,  8576,
+      256,   256,   256,   256,   256,   256,   256,  9600,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   256,   256,  8704,  8832,  8960,  9088,
-      256,   256,  9216,  9344,  9472,  9600,  9728,  9856,
-     9984, 10112, 10240,    -1,    -1,    -1, 10368, 10496,
-      256, 10624,    -1,    -1,    -1,    -1,    -1,    -1,
-    10752,    -1, 10880,    -1, 11008,    -1,    -1,    -1,
+       -1,    -1,   256,   256,  9728,  9856,  9984, 10112,
+      256,   256, 10240, 10368, 10496, 10624, 10752, 10880,
+    11008, 11136, 11264, 11392,    -1, 11520, 11648, 11776,
+      256, 11904,    -1,    -1,    -1,    -1,    -1,    -1,
+    12032,    -1, 12160,    -1, 12288,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256,   256,   256, 11136,    -1,
-    11264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256, 12416,    -1,
+    12544,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1, 11392, 11520, 11648,    -1,    -1,    -1,
-    11776, 11904, 12032,   256,   256, 12160, 12288, 12416,
+       -1,    -1, 12672, 12800, 12928,    -1,    -1,    -1,
+    13056, 13184, 13312,   256,   256, 13440, 13568, 13696,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256, 12544,    -1,    -1,
+      256,   256,   256,   256,   256, 13824,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256, 12672,    -1,    -1,    -1,
+      256,   256,   256,   256, 13952,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    12800,    -1, 12928, 13056,    -1,    -1,    -1,    -1,
+    14080,    -1, 14208, 14336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
@@ -120,43 +120,43 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0aa0, 0x0000, 0xaaa0, 0xaaaa, 0xa800, 0x8aaa, 0xaaaa, 0xaaaa,
+    0x0aa0, 0x0000, 0xaaa0, 0xaaaa, 0xa800, 0x88aa, 0xaaaa, 0xaaaa,
     0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
-    0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0xaaaa, 0xa00a,
+    0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x0800, 0xa00a,
     0x8aaa, 0x0880, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x0000,
-    0x9560, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x0000,
+    0x5560, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0x0002, 0x0000,
     0x0000, 0x0000, 0x8000, 0xaaa2, 0x0002, 0x0000, 0x0000, 0x0000,
     0x0000, 0xaaaa, 0x5556, 0x5555, 0x5555, 0x5555, 0x5555, 0x6555,
     0x6596, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaa80, 0xaaaa,
-    0xaaff, 0xaa2a, 0xa555, 0xaaaa, 0x0002, 0x0000, 0x0000, 0xaa80,
+    0xaaff, 0xaa2a, 0x5555, 0xaa95, 0x0002, 0x0000, 0x0000, 0x0000,
     0x0000, 0x5540, 0x5555, 0x9555, 0x5555, 0x0aa5, 0x0001, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x5200, 0x6d55, 0x4155, 0x0559, 0x5555, 0x2805,
     0xaaaa, 0xeaaa, 0x0004, 0x0000, 0x0000, 0x0000, 0x5555, 0x5555,
-    0x5555, 0x0295, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa,
+    0x5555, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x5555, 0xaaa1, 0xaaaa,
     0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0x5540, 0xa055, 0xaa8a,
     0x0056, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51a0,
-    0x5555, 0xa555, 0xa954, 0x0000, 0x5a50, 0x5555, 0xaaaa, 0x002a,
+    0x5555, 0xa555, 0xa954, 0x0000, 0x5a50, 0x5555, 0xaa82, 0x002a,
     0x0256, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0a88, 0x51a0,
     0x6955, 0x8569, 0x6aaa, 0x20aa, 0x5a50, 0x5555, 0xaa00, 0xaaaa,
     0x0256, 0x2a80, 0x0028, 0x0000, 0x0000, 0x0008, 0x8208, 0x59a0,
-    0x6a95, 0xa569, 0xaaaa, 0x8802, 0x5aaa, 0x5555, 0xa805, 0xaaaa,
+    0x6a95, 0xa569, 0xaaa6, 0x8802, 0x5aaa, 0x5555, 0xa405, 0xaaaa,
     0x0256, 0x2000, 0x0020, 0x0000, 0x0000, 0x0008, 0x0208, 0x51a0,
     0x6555, 0xa565, 0xaaa8, 0xaaaa, 0x5a50, 0x5555, 0xaaa2, 0xaaaa,
     0x0256, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0208, 0x51a0,
-    0x6a55, 0xa569, 0x5aaa, 0x20aa, 0x5aa0, 0x5555, 0xaaa2, 0xaaaa,
+    0x6955, 0xa569, 0x5aaa, 0x20aa, 0x5a50, 0x5555, 0xaaa2, 0xaaaa,
     0x021a, 0x0a80, 0xa008, 0x0882, 0xa82a, 0x0a80, 0x0000, 0x5aa0,
-    0x5a95, 0xa559, 0x6aaa, 0xaaaa, 0x5aaa, 0x5555, 0xaaaa, 0xaaa2,
-    0x0256, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x5aa0,
-    0x5955, 0xa559, 0x96aa, 0xaaaa, 0x5aa0, 0x5555, 0xaaaa, 0xaaaa,
+    0x5a95, 0xa559, 0x6aa8, 0xaaaa, 0x5aaa, 0x5555, 0xaaaa, 0xaaa2,
+    0x0256, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x52a0,
+    0x5955, 0xa559, 0x96aa, 0xaaa0, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
     0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x51a0,
     0x5955, 0xa559, 0x96aa, 0x8aaa, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
-    0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0000, 0x5aa0,
-    0x5a55, 0xa559, 0x6aaa, 0xaaaa, 0x5aa0, 0x5555, 0xaaaa, 0xaaaa,
+    0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0000, 0x52a0,
+    0x5955, 0xa559, 0x6aaa, 0xaaaa, 0x5a50, 0x5555, 0xaaaa, 0x000a,
     0x025a, 0x0000, 0x8000, 0x000a, 0x0000, 0x0000, 0x0020, 0xa200,
     0x8000, 0x6a9a, 0x9955, 0x5555, 0xaaaa, 0xaaaa, 0xaa5a, 0xaaaa,
     0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5504, 0x2a95,
@@ -164,12 +164,12 @@
     0x2882, 0xa288, 0x00aa, 0x0002, 0x2202, 0x020a, 0x5504, 0xa165,
     0x8800, 0xa555, 0x5555, 0xa0a5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaa8, 0xaaaa, 0xaaaa, 0xaaa5, 0x5555, 0xaaa5, 0x66aa, 0x5aa6,
-    0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0xaa80, 0x5556, 0x5555,
+    0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0xa800, 0x5556, 0x5555,
     0x5955, 0xaa00, 0x5555, 0x5556, 0x5555, 0x5555, 0x5555, 0xa955,
     0x9aaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x5582, 0x5a95, 0xaaa5,
-    0x5555, 0xaaa5, 0x5000, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5540, 0x5555, 0x1555,
+    0x5555, 0xaaa5, 0x5000, 0x5005, 0x4151, 0x0555, 0x0154, 0x0000,
+    0x5550, 0x4555, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
     0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa880,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x2aa0, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -195,7 +195,7 @@
     0x5555, 0x5555, 0x2a55, 0xa42a, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa,
     0xaaaa, 0xa56a, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa4, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa84, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0xa800, 0x5555, 0xaa55, 0x5555, 0xaa55,
     0x5aaa, 0x5555, 0x0000, 0x0000, 0x0000, 0xa000, 0xa800, 0xaaaa,
@@ -205,48 +205,64 @@
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0155, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
     0x0155, 0xaa00, 0x5555, 0xaaa5, 0xaaaa, 0x556a, 0xaa55, 0xaaaa,
+    0x0015, 0x0000, 0x0000, 0x0000, 0x5554, 0x0a95, 0x5555, 0xaaa5,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555, 0x5555, 0xaaaa,
+    0x5555, 0x02a5, 0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0xa000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x5555, 0xaa95, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x5aaa,
-    0x0000, 0x0000, 0x0000, 0xaa00, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0,
+    0x5555, 0x5555, 0x5555, 0x5555, 0x9555, 0xaaaa, 0xaaaa, 0x5aaa,
     0x0000, 0x0000, 0xa000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
     0xa000, 0xa000, 0x0000, 0x2222, 0x0000, 0x0000, 0x0000, 0xa000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x8800,
     0x080a, 0xa800, 0x0a00, 0xaa00, 0x0000, 0xa800, 0x080a, 0xa800,
     0xaaaa, 0xffea, 0xaaaa, 0xaaaa, 0xaaaa, 0xbffa, 0xaaaa, 0x2aaa,
-    0xaaa8, 0xaaaa, 0xa8aa, 0xaaaa, 0xaaff, 0xfffa, 0xaaa2, 0x2aaa,
+    0xaaa8, 0xaaaa, 0xa8aa, 0xaaaa, 0xabff, 0xfffa, 0xaaa2, 0x2aaa,
     0xaaaa, 0xaaaa, 0xa800, 0xaaaa, 0x0000, 0x0000, 0xa000, 0xaaaa,
-    0xaaaa, 0xaaaa, 0x5555, 0xa955, 0x56a6, 0x5555, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0x5555, 0xa955, 0x56a6, 0x5555, 0xaaa9, 0xaaaa,
     0x2a8a, 0x000a, 0xa200, 0xa002, 0x88aa, 0x2008, 0x0000, 0x00a0,
     0x02aa, 0x8aa0, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
-    0xa800, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0xa800, 0x00aa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0002, 0xa000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x2aaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x8000, 0xaaaa, 0x8000, 0x8000, 0x8000, 0x8000,
-    0x8000, 0x8000, 0x8000, 0x8000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x8000, 0x8000, 0x8000, 0x8000, 0x5555, 0x5555, 0x5555, 0x5555,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x2aaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x02aa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0002, 0x5550, 0xa002, 0xa800,
     0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x8000, 0x0296, 0x0002, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080,
-    0x02aa, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0x0002, 0x0000,
+    0x02aa, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0002, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0x2aaa, 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0xa800, 0x0000, 0x0000, 0x5555, 0xaa05, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x4000, 0xaaaa, 0x25aa,
+    0x0000, 0x0000, 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0x2aaa, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0xa828, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x002a,
     0x1010, 0x0040, 0x0000, 0x0000, 0x5540, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa,
+    0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
+    0xa955, 0xaaaa, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x5555, 0x0005, 0x0000, 0x0000, 0x5000, 0xa555, 0x0000, 0x0000,
+    0x4000, 0x5555, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5554, 0x9555, 0xaaaa,
+    0x0040, 0xa500, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000,
@@ -261,7 +277,7 @@
     0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0xa800,
-    0x5555, 0x5555, 0xaaaa, 0xaaaa, 0xaa55, 0xaaaa, 0xa82a, 0xaaaa,
+    0x5555, 0x5555, 0xaaaa, 0xaaaa, 0x9555, 0xaaaa, 0xa82a, 0xaaaa,
     0xaaaa, 0x02aa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaa2, 0x0800, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe800,
@@ -275,6 +291,10 @@
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xa6aa,
+    0x0000, 0x0000, 0x0000, 0xa800, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000,
     0x0000, 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -283,7 +303,7 @@
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xa000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x28a8,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaa0,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x9654, 0x55aa, 0x0200, 0x0002, 0x0000, 0x0000, 0xaa00, 0x6a95,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
--- a/lib/unictype/sy_java_whitespace.h
+++ b/lib/unictype/sy_java_whitespace.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
--- a/lib/unilbrk/lbrkprop1.h
+++ b/lib/unilbrk/lbrkprop1.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking properties of Unicode characters.  */
-/* Generated automatically by gen-lbrk for Unicode 5.0.0.  */
+/* Generated automatically by gen-lbrk for Unicode 5.1.0.  */
 
 /* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc.
 
@@ -27,7 +27,7 @@
   {
     int level1[15];
     int level2[4 << 9];
-    unsigned char level3[133 << 7];
+    unsigned char level3[142 << 7];
   }
 lbrkprop_t;
 extern const lbrkprop_t unilbrkprop;
--- a/lib/unilbrk/lbrkprop2.h
+++ b/lib/unilbrk/lbrkprop2.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking properties of Unicode characters.  */
-/* Generated automatically by gen-lbrk for Unicode 5.0.0.  */
+/* Generated automatically by gen-lbrk for Unicode 5.1.0.  */
 
 /* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc.
 
@@ -30,54 +30,54 @@
      2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
      3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
      4480,   256,   256,   256,  4608,  4736,  4864,  4992,
-     5120,  5248,  5376,  5504,  5632,    -1,  5760,    -1,
-       -1,    -1,   256,  5888,   256,  6016,  6144,  6272,
-     6400,  6528,  6656,  6784,  6912,  7040,  7168,  7296,
-     7424,  7552,  7680,  7808,  7936,  8064,  8192,  8320,
-      256,   256,   256,  8448,   256,   256,  8576,    -1,
-     8704,  8832,  8960,  9088,  9216,  9344,  9472,  9600,
-     9728,  9856,  9984, 10112, 10240, 10368,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472, 10496,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472, 10624,
-    10752,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472, 10880,    -1,    -1,    -1,    -1, 11008,    -1,
-    11136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    11264, 11392, 11520, 11648, 11776, 11904, 12032, 11264,
-    11392, 11520, 11648, 11776, 11904, 12032, 11264, 11392,
-    11520, 11648, 11776, 11904, 12032, 11264, 11392, 11520,
-    11648, 11776, 11904, 12032, 11264, 11392, 11520, 11648,
-    11776, 11904, 12032, 11264, 11392, 11520, 11648, 11776,
-    11904, 12032, 11264, 11392, 11520, 11648, 11776, 11904,
-    12032, 11264, 11392, 11520, 11648, 11776, 11904, 12032,
-    11264, 11392, 11520, 11648, 11776, 11904, 12032, 11264,
-    11392, 11520, 11648, 11776, 11904, 12032, 11264, 11392,
-    11520, 11648, 11776, 11904, 12032, 11264, 11392, 11520,
-    11648, 11776, 11904, 12032, 11264, 11392, 11520, 12160,
+     5120,  5248,  5376,  5504,  5632,    -1,  5760,  5888,
+     6016,    -1,   256,  6144,   256,   256,  6272,  6400,
+     6528,  6656,  6784,  6912,  7040,  7168,  7296,  7424,
+     7552,  7680,  7808,  7936,  8064,  8192,  8320,  8448,
+      256,   256,   256,  8576,   256,   256,  8704,    -1,
+     8832,  8960,  9088,  9216,  9344,  9472,  9600,  9728,
+     9856,  9984, 10112, 10240, 10368, 10496,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600, 10624,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600, 10752,
+    10880,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600, 11008,   256,   256, 11136, 11264,   256, 11392,
+    11520, 11648, 11776,    -1, 11904,    -1,    -1,    -1,
+    12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
+    12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
+    12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
+    12416, 12544, 12672, 12800, 12032, 12160, 12288, 12416,
+    12544, 12672, 12800, 12032, 12160, 12288, 12416, 12544,
+    12672, 12800, 12032, 12160, 12288, 12416, 12544, 12672,
+    12800, 12032, 12160, 12288, 12416, 12544, 12672, 12800,
+    12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
+    12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
+    12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
+    12416, 12544, 12672, 12800, 12032, 12160, 12288, 12928,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -86,18 +86,18 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  9472,  9472, 12288, 12416, 12544, 12672,
-      256,   256, 12800, 12928, 13056, 13184, 13312, 13440,
-    13568, 13696, 13824, 13952,    -1,    -1, 14080, 14208,
-      256, 14336,    -1,    -1,    -1,    -1,    -1,    -1,
-    14464,    -1, 14592,    -1, 14720,    -1,    -1,    -1,
+       -1,    -1,  9600,  9600, 13056, 13184, 13312, 13440,
+      256,   256, 13568, 13696, 13824, 13952, 14080, 14208,
+    14336, 14464, 14592, 14720,    -1, 14848, 14976, 15104,
+      256, 15232,    -1,    -1,    -1,    -1,    -1,    -1,
+    15360,    -1, 15488,    -1, 15616,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256,   256,   256, 14848,    -1,
-    14976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256, 15744,    -1,
+    15872,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -140,60 +140,60 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256, 15104, 15232, 15360, 15488,    -1, 15616,    -1,
-    15744, 15872, 16000,   256,   256, 16128,   256, 16256,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256, 16000, 16128, 16256, 16384,    -1, 16512,    -1,
+    16640, 16768, 16896,   256,   256, 17024,   256, 17152,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472,  9472,  9472,  9472,
-     9472,  9472,  9472,  9472,  9472, 16384,    -1,    -1,
+    17280, 17408,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
+     9600,  9600,  9600,  9600,  9600, 17536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -214,9 +214,9 @@
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9472,  9472,  9472,  9472, 16512,    -1,    -1,    -1,
+     9600,  9600,  9600,  9600, 17664,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    16640,    -1, 16768, 16896,    -1,    -1,    -1,    -1,
+    17792,    -1, 17920, 18048,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -360,7 +360,7 @@
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_GL, LBP_GL, LBP_GL,
     LBP_GL, LBP_GL, LBP_GL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
@@ -371,14 +371,14 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -396,10 +396,10 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -426,14 +426,14 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_PO, LBP_EX, LBP_IS, LBP_AL, LBP_AL,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_EX, LBP_XX, LBP_XX, LBP_EX, LBP_EX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_EX, LBP_IS, LBP_AL, LBP_AL,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_XX, LBP_XX, LBP_EX, LBP_EX,
     LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
@@ -471,9 +471,9 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -504,7 +504,7 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
@@ -532,11 +532,11 @@
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
     LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
@@ -562,11 +562,11 @@
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM,
     LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+    LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -580,7 +580,7 @@
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
     LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
@@ -593,15 +593,15 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
     LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -625,15 +625,15 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
     LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+    LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
@@ -695,7 +695,7 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_CM, LBP_CM,
@@ -707,8 +707,8 @@
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_BA, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
-    LBP_BB, LBP_BB, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+    LBP_BB, LBP_BB, LBP_BA, LBP_BB, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -718,22 +718,22 @@
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
-    LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
-    LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
-    LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
-    LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
-    LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -943,7 +943,7 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1018,6 +1018,38 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1027,31 +1059,15 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1094,7 +1110,7 @@
     LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_AL,
     LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
-    LBP_WJ, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_WJ, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AI,
@@ -1112,7 +1128,7 @@
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
     LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1123,15 +1139,15 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1293,12 +1309,12 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1331,11 +1347,11 @@
     LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
-    LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
@@ -1357,14 +1373,14 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1383,9 +1399,9 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1430,17 +1446,17 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU,
     LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_BA, LBP_BA,
     LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_QU, LBP_QU, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_OP, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL,
+    LBP_QU, LBP_QU, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+    LBP_OP, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL,
+    LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1535,7 +1551,7 @@
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
     LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
@@ -1556,9 +1572,9 @@
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
     LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
@@ -1617,8 +1633,8 @@
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1659,10 +1675,24 @@
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_BA, LBP_EX, LBP_BA,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1674,6 +1704,24 @@
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1690,6 +1738,54 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_BB, LBP_EX, LBP_EX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_BA,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
@@ -1918,7 +2014,7 @@
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_IS, LBP_CL, LBP_CL, LBP_IS, LBP_IS, LBP_EX, LBP_EX, LBP_OP,
     LBP_CL, LBP_IN, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP,
     LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
@@ -2028,15 +2124,31 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2110,10 +2222,10 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2191,7 +2303,7 @@
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
-    LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2330,6 +2442,38 @@
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
--- a/tests/unictype/test-categ_C.c
+++ b/tests/unictype/test-categ_C.c
@@ -20,37 +20,31 @@
     { 0x0000, 0x001F },
     { 0x007F, 0x009F },
     { 0x00AD, 0x00AD },
-    { 0x0370, 0x0373 },
-    { 0x0376, 0x0379 },
+    { 0x0378, 0x0379 },
     { 0x037F, 0x0383 },
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x03CF, 0x03CF },
-    { 0x0487, 0x0487 },
-    { 0x0514, 0x0530 },
+    { 0x0524, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
     { 0x058B, 0x0590 },
     { 0x05C8, 0x05CF },
     { 0x05EB, 0x05EF },
-    { 0x05F5, 0x060A },
-    { 0x0616, 0x061A },
+    { 0x05F5, 0x0605 },
     { 0x061C, 0x061D },
     { 0x0620, 0x0620 },
-    { 0x063B, 0x063F },
     { 0x065F, 0x065F },
     { 0x06DD, 0x06DD },
     { 0x070E, 0x070F },
     { 0x074B, 0x074C },
-    { 0x076E, 0x077F },
     { 0x07B2, 0x07BF },
     { 0x07FB, 0x0900 },
     { 0x093A, 0x093B },
     { 0x094E, 0x094F },
     { 0x0955, 0x0957 },
-    { 0x0971, 0x097A },
+    { 0x0973, 0x097A },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -77,10 +71,11 @@
     { 0x0A3D, 0x0A3D },
     { 0x0A43, 0x0A46 },
     { 0x0A49, 0x0A4A },
-    { 0x0A4E, 0x0A58 },
+    { 0x0A4E, 0x0A50 },
+    { 0x0A52, 0x0A58 },
     { 0x0A5D, 0x0A5D },
     { 0x0A5F, 0x0A65 },
-    { 0x0A75, 0x0A80 },
+    { 0x0A76, 0x0A80 },
     { 0x0A84, 0x0A84 },
     { 0x0A8E, 0x0A8E },
     { 0x0A92, 0x0A92 },
@@ -102,12 +97,12 @@
     { 0x0B31, 0x0B31 },
     { 0x0B34, 0x0B34 },
     { 0x0B3A, 0x0B3B },
-    { 0x0B44, 0x0B46 },
+    { 0x0B45, 0x0B46 },
     { 0x0B49, 0x0B4A },
     { 0x0B4E, 0x0B55 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
-    { 0x0B62, 0x0B65 },
+    { 0x0B64, 0x0B65 },
     { 0x0B72, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
@@ -121,7 +116,8 @@
     { 0x0BBA, 0x0BBD },
     { 0x0BC3, 0x0BC5 },
     { 0x0BC9, 0x0BC9 },
-    { 0x0BCE, 0x0BD6 },
+    { 0x0BCE, 0x0BCF },
+    { 0x0BD1, 0x0BD6 },
     { 0x0BD8, 0x0BE5 },
     { 0x0BFB, 0x0C00 },
     { 0x0C04, 0x0C04 },
@@ -129,13 +125,15 @@
     { 0x0C11, 0x0C11 },
     { 0x0C29, 0x0C29 },
     { 0x0C34, 0x0C34 },
-    { 0x0C3A, 0x0C3D },
+    { 0x0C3A, 0x0C3C },
     { 0x0C45, 0x0C45 },
     { 0x0C49, 0x0C49 },
     { 0x0C4E, 0x0C54 },
-    { 0x0C57, 0x0C5F },
-    { 0x0C62, 0x0C65 },
-    { 0x0C70, 0x0C81 },
+    { 0x0C57, 0x0C57 },
+    { 0x0C5A, 0x0C5F },
+    { 0x0C64, 0x0C65 },
+    { 0x0C70, 0x0C77 },
+    { 0x0C80, 0x0C81 },
     { 0x0C84, 0x0C84 },
     { 0x0C8D, 0x0C8D },
     { 0x0C91, 0x0C91 },
@@ -154,13 +152,14 @@
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
     { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3D },
-    { 0x0D44, 0x0D45 },
+    { 0x0D3A, 0x0D3C },
+    { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
     { 0x0D4E, 0x0D56 },
     { 0x0D58, 0x0D5F },
-    { 0x0D62, 0x0D65 },
-    { 0x0D70, 0x0D81 },
+    { 0x0D64, 0x0D65 },
+    { 0x0D76, 0x0D78 },
+    { 0x0D80, 0x0D81 },
     { 0x0D84, 0x0D84 },
     { 0x0D97, 0x0D99 },
     { 0x0DB2, 0x0DB2 },
@@ -193,18 +192,13 @@
     { 0x0EDA, 0x0EDB },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
-    { 0x0F6B, 0x0F70 },
+    { 0x0F6D, 0x0F70 },
     { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
-    { 0x0FCD, 0x0FCE },
-    { 0x0FD2, 0x0FFF },
-    { 0x1022, 0x1022 },
-    { 0x1028, 0x1028 },
-    { 0x102B, 0x102B },
-    { 0x1033, 0x1035 },
-    { 0x103A, 0x103F },
-    { 0x105A, 0x109F },
+    { 0x0FCD, 0x0FCD },
+    { 0x0FD5, 0x0FFF },
+    { 0x109A, 0x109D },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
     { 0x115A, 0x115E },
@@ -246,7 +240,7 @@
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AA, 0x18FF },
+    { 0x18AB, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
@@ -259,10 +253,13 @@
     { 0x1A1C, 0x1A1D },
     { 0x1A20, 0x1AFF },
     { 0x1B4C, 0x1B4F },
-    { 0x1B7D, 0x1CFF },
-    { 0x1DCB, 0x1DFD },
-    { 0x1E9C, 0x1E9F },
-    { 0x1EFA, 0x1EFF },
+    { 0x1B7D, 0x1B7F },
+    { 0x1BAB, 0x1BAD },
+    { 0x1BBA, 0x1BFF },
+    { 0x1C38, 0x1C3A },
+    { 0x1C4A, 0x1C4C },
+    { 0x1C80, 0x1CFF },
+    { 0x1DE7, 0x1DFD },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
@@ -286,14 +283,15 @@
     { 0x208F, 0x208F },
     { 0x2095, 0x209F },
     { 0x20B6, 0x20CF },
-    { 0x20F0, 0x20FF },
-    { 0x214F, 0x2152 },
-    { 0x2185, 0x218F },
+    { 0x20F1, 0x20FF },
+    { 0x2150, 0x2152 },
+    { 0x2189, 0x218F },
     { 0x23E8, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269D, 0x269F },
-    { 0x26B3, 0x2700 },
+    { 0x269E, 0x269F },
+    { 0x26BD, 0x26BF },
+    { 0x26C4, 0x2700 },
     { 0x2705, 0x2705 },
     { 0x270A, 0x270B },
     { 0x2728, 0x2728 },
@@ -305,14 +303,14 @@
     { 0x2795, 0x2797 },
     { 0x27B0, 0x27B0 },
     { 0x27BF, 0x27BF },
-    { 0x27CB, 0x27CF },
-    { 0x27EC, 0x27EF },
-    { 0x2B1B, 0x2B1F },
-    { 0x2B24, 0x2BFF },
+    { 0x27CB, 0x27CB },
+    { 0x27CD, 0x27CF },
+    { 0x2B4D, 0x2B4F },
+    { 0x2B55, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C6D, 0x2C73 },
-    { 0x2C78, 0x2C7F },
+    { 0x2C70, 0x2C70 },
+    { 0x2C7E, 0x2C7F },
     { 0x2CEB, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
@@ -325,9 +323,8 @@
     { 0x2DC7, 0x2DC7 },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
-    { 0x2DDF, 0x2DFF },
-    { 0x2E18, 0x2E1B },
-    { 0x2E1E, 0x2E7F },
+    { 0x2DDF, 0x2DDF },
+    { 0x2E31, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
@@ -335,21 +332,32 @@
     { 0x3040, 0x3040 },
     { 0x3097, 0x3098 },
     { 0x3100, 0x3104 },
-    { 0x312D, 0x3130 },
+    { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
     { 0x31B8, 0x31BF },
-    { 0x31D0, 0x31EF },
+    { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
     { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FBC, 0x9FFF },
+    { 0x9FC4, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA6FF },
-    { 0xA71B, 0xA71F },
-    { 0xA722, 0xA7FF },
+    { 0xA4C7, 0xA4FF },
+    { 0xA62C, 0xA63F },
+    { 0xA660, 0xA661 },
+    { 0xA674, 0xA67B },
+    { 0xA698, 0xA6FF },
+    { 0xA78D, 0xA7FA },
     { 0xA82C, 0xA83F },
-    { 0xA878, 0xABFF },
+    { 0xA878, 0xA87F },
+    { 0xA8C5, 0xA8CD },
+    { 0xA8DA, 0xA8FF },
+    { 0xA954, 0xA95E },
+    { 0xA960, 0xA9FF },
+    { 0xAA37, 0xAA3F },
+    { 0xAA4E, 0xAA4F },
+    { 0xAA5A, 0xAA5B },
+    { 0xAA60, 0xABFF },
     { 0xD7A4, 0xF8FF },
     { 0xFA2E, 0xFA2F },
     { 0xFA6B, 0xFA6F },
@@ -367,7 +375,7 @@
     { 0xFDC8, 0xFDEF },
     { 0xFDFE, 0xFDFF },
     { 0xFE1A, 0xFE1F },
-    { 0xFE24, 0xFE2F },
+    { 0xFE27, 0xFE2F },
     { 0xFE53, 0xFE53 },
     { 0xFE67, 0xFE67 },
     { 0xFE6C, 0xFE6F },
@@ -390,7 +398,11 @@
     { 0x100FB, 0x100FF },
     { 0x10103, 0x10106 },
     { 0x10134, 0x10136 },
-    { 0x1018B, 0x102FF },
+    { 0x1018B, 0x1018F },
+    { 0x1019C, 0x101CF },
+    { 0x101FE, 0x1027F },
+    { 0x1029D, 0x1029F },
+    { 0x102D1, 0x102FF },
     { 0x1031F, 0x1031F },
     { 0x10324, 0x1032F },
     { 0x1034B, 0x1037F },
@@ -406,7 +418,8 @@
     { 0x1083D, 0x1083E },
     { 0x10840, 0x108FF },
     { 0x1091A, 0x1091E },
-    { 0x10920, 0x109FF },
+    { 0x1093A, 0x1093E },
+    { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A07, 0x10A0B },
     { 0x10A14, 0x10A14 },
@@ -419,7 +432,7 @@
     { 0x12463, 0x1246F },
     { 0x12474, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
-    { 0x1D127, 0x1D129 },
+    { 0x1D127, 0x1D128 },
     { 0x1D173, 0x1D17A },
     { 0x1D1DE, 0x1D1FF },
     { 0x1D246, 0x1D2FF },
@@ -445,7 +458,9 @@
     { 0x1D551, 0x1D551 },
     { 0x1D6A6, 0x1D6A7 },
     { 0x1D7CC, 0x1D7CD },
-    { 0x1D800, 0x1FFFF },
+    { 0x1D800, 0x1EFFF },
+    { 0x1F02C, 0x1F02F },
+    { 0x1F094, 0x1FFFF },
     { 0x2A6D7, 0x2F7FF },
     { 0x2FA1E, 0xE00FF },
     { 0xE01F0, 0x10FFFF }
--- a/tests/unictype/test-categ_Cf.c
+++ b/tests/unictype/test-categ_Cf.c
@@ -24,7 +24,7 @@
     { 0x17B4, 0x17B5 },
     { 0x200B, 0x200F },
     { 0x202A, 0x202E },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },
--- a/tests/unictype/test-categ_Cn.c
+++ b/tests/unictype/test-categ_Cn.c
@@ -17,15 +17,12 @@
 
 #include "test-predicate-part1.h"
 
-    { 0x0370, 0x0373 },
-    { 0x0376, 0x0379 },
+    { 0x0378, 0x0379 },
     { 0x037F, 0x0383 },
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x03CF, 0x03CF },
-    { 0x0487, 0x0487 },
-    { 0x0514, 0x0530 },
+    { 0x0524, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
@@ -33,21 +30,18 @@
     { 0x05C8, 0x05CF },
     { 0x05EB, 0x05EF },
     { 0x05F5, 0x05FF },
-    { 0x0604, 0x060A },
-    { 0x0616, 0x061A },
+    { 0x0604, 0x0605 },
     { 0x061C, 0x061D },
     { 0x0620, 0x0620 },
-    { 0x063B, 0x063F },
     { 0x065F, 0x065F },
     { 0x070E, 0x070E },
     { 0x074B, 0x074C },
-    { 0x076E, 0x077F },
     { 0x07B2, 0x07BF },
     { 0x07FB, 0x0900 },
     { 0x093A, 0x093B },
     { 0x094E, 0x094F },
     { 0x0955, 0x0957 },
-    { 0x0971, 0x097A },
+    { 0x0973, 0x097A },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -74,10 +68,11 @@
     { 0x0A3D, 0x0A3D },
     { 0x0A43, 0x0A46 },
     { 0x0A49, 0x0A4A },
-    { 0x0A4E, 0x0A58 },
+    { 0x0A4E, 0x0A50 },
+    { 0x0A52, 0x0A58 },
     { 0x0A5D, 0x0A5D },
     { 0x0A5F, 0x0A65 },
-    { 0x0A75, 0x0A80 },
+    { 0x0A76, 0x0A80 },
     { 0x0A84, 0x0A84 },
     { 0x0A8E, 0x0A8E },
     { 0x0A92, 0x0A92 },
@@ -99,12 +94,12 @@
     { 0x0B31, 0x0B31 },
     { 0x0B34, 0x0B34 },
     { 0x0B3A, 0x0B3B },
-    { 0x0B44, 0x0B46 },
+    { 0x0B45, 0x0B46 },
     { 0x0B49, 0x0B4A },
     { 0x0B4E, 0x0B55 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
-    { 0x0B62, 0x0B65 },
+    { 0x0B64, 0x0B65 },
     { 0x0B72, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
@@ -118,7 +113,8 @@
     { 0x0BBA, 0x0BBD },
     { 0x0BC3, 0x0BC5 },
     { 0x0BC9, 0x0BC9 },
-    { 0x0BCE, 0x0BD6 },
+    { 0x0BCE, 0x0BCF },
+    { 0x0BD1, 0x0BD6 },
     { 0x0BD8, 0x0BE5 },
     { 0x0BFB, 0x0C00 },
     { 0x0C04, 0x0C04 },
@@ -126,13 +122,15 @@
     { 0x0C11, 0x0C11 },
     { 0x0C29, 0x0C29 },
     { 0x0C34, 0x0C34 },
-    { 0x0C3A, 0x0C3D },
+    { 0x0C3A, 0x0C3C },
     { 0x0C45, 0x0C45 },
     { 0x0C49, 0x0C49 },
     { 0x0C4E, 0x0C54 },
-    { 0x0C57, 0x0C5F },
-    { 0x0C62, 0x0C65 },
-    { 0x0C70, 0x0C81 },
+    { 0x0C57, 0x0C57 },
+    { 0x0C5A, 0x0C5F },
+    { 0x0C64, 0x0C65 },
+    { 0x0C70, 0x0C77 },
+    { 0x0C80, 0x0C81 },
     { 0x0C84, 0x0C84 },
     { 0x0C8D, 0x0C8D },
     { 0x0C91, 0x0C91 },
@@ -151,13 +149,14 @@
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
     { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3D },
-    { 0x0D44, 0x0D45 },
+    { 0x0D3A, 0x0D3C },
+    { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
     { 0x0D4E, 0x0D56 },
     { 0x0D58, 0x0D5F },
-    { 0x0D62, 0x0D65 },
-    { 0x0D70, 0x0D81 },
+    { 0x0D64, 0x0D65 },
+    { 0x0D76, 0x0D78 },
+    { 0x0D80, 0x0D81 },
     { 0x0D84, 0x0D84 },
     { 0x0D97, 0x0D99 },
     { 0x0DB2, 0x0DB2 },
@@ -190,18 +189,13 @@
     { 0x0EDA, 0x0EDB },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
-    { 0x0F6B, 0x0F70 },
+    { 0x0F6D, 0x0F70 },
     { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
-    { 0x0FCD, 0x0FCE },
-    { 0x0FD2, 0x0FFF },
-    { 0x1022, 0x1022 },
-    { 0x1028, 0x1028 },
-    { 0x102B, 0x102B },
-    { 0x1033, 0x1035 },
-    { 0x103A, 0x103F },
-    { 0x105A, 0x109F },
+    { 0x0FCD, 0x0FCD },
+    { 0x0FD5, 0x0FFF },
+    { 0x109A, 0x109D },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
     { 0x115A, 0x115E },
@@ -242,7 +236,7 @@
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AA, 0x18FF },
+    { 0x18AB, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
@@ -255,10 +249,13 @@
     { 0x1A1C, 0x1A1D },
     { 0x1A20, 0x1AFF },
     { 0x1B4C, 0x1B4F },
-    { 0x1B7D, 0x1CFF },
-    { 0x1DCB, 0x1DFD },
-    { 0x1E9C, 0x1E9F },
-    { 0x1EFA, 0x1EFF },
+    { 0x1B7D, 0x1B7F },
+    { 0x1BAB, 0x1BAD },
+    { 0x1BBA, 0x1BFF },
+    { 0x1C38, 0x1C3A },
+    { 0x1C4A, 0x1C4C },
+    { 0x1C80, 0x1CFF },
+    { 0x1DE7, 0x1DFD },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
@@ -275,19 +272,20 @@
     { 0x1FF0, 0x1FF1 },
     { 0x1FF5, 0x1FF5 },
     { 0x1FFF, 0x1FFF },
-    { 0x2064, 0x2069 },
+    { 0x2065, 0x2069 },
     { 0x2072, 0x2073 },
     { 0x208F, 0x208F },
     { 0x2095, 0x209F },
     { 0x20B6, 0x20CF },
-    { 0x20F0, 0x20FF },
-    { 0x214F, 0x2152 },
-    { 0x2185, 0x218F },
+    { 0x20F1, 0x20FF },
+    { 0x2150, 0x2152 },
+    { 0x2189, 0x218F },
     { 0x23E8, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269D, 0x269F },
-    { 0x26B3, 0x2700 },
+    { 0x269E, 0x269F },
+    { 0x26BD, 0x26BF },
+    { 0x26C4, 0x2700 },
     { 0x2705, 0x2705 },
     { 0x270A, 0x270B },
     { 0x2728, 0x2728 },
@@ -299,14 +297,14 @@
     { 0x2795, 0x2797 },
     { 0x27B0, 0x27B0 },
     { 0x27BF, 0x27BF },
-    { 0x27CB, 0x27CF },
-    { 0x27EC, 0x27EF },
-    { 0x2B1B, 0x2B1F },
-    { 0x2B24, 0x2BFF },
+    { 0x27CB, 0x27CB },
+    { 0x27CD, 0x27CF },
+    { 0x2B4D, 0x2B4F },
+    { 0x2B55, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C6D, 0x2C73 },
-    { 0x2C78, 0x2C7F },
+    { 0x2C70, 0x2C70 },
+    { 0x2C7E, 0x2C7F },
     { 0x2CEB, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
@@ -319,9 +317,8 @@
     { 0x2DC7, 0x2DC7 },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
-    { 0x2DDF, 0x2DFF },
-    { 0x2E18, 0x2E1B },
-    { 0x2E1E, 0x2E7F },
+    { 0x2DDF, 0x2DDF },
+    { 0x2E31, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
@@ -329,21 +326,32 @@
     { 0x3040, 0x3040 },
     { 0x3097, 0x3098 },
     { 0x3100, 0x3104 },
-    { 0x312D, 0x3130 },
+    { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
     { 0x31B8, 0x31BF },
-    { 0x31D0, 0x31EF },
+    { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
     { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FBC, 0x9FFF },
+    { 0x9FC4, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA6FF },
-    { 0xA71B, 0xA71F },
-    { 0xA722, 0xA7FF },
+    { 0xA4C7, 0xA4FF },
+    { 0xA62C, 0xA63F },
+    { 0xA660, 0xA661 },
+    { 0xA674, 0xA67B },
+    { 0xA698, 0xA6FF },
+    { 0xA78D, 0xA7FA },
     { 0xA82C, 0xA83F },
-    { 0xA878, 0xABFF },
+    { 0xA878, 0xA87F },
+    { 0xA8C5, 0xA8CD },
+    { 0xA8DA, 0xA8FF },
+    { 0xA954, 0xA95E },
+    { 0xA960, 0xA9FF },
+    { 0xAA37, 0xAA3F },
+    { 0xAA4E, 0xAA4F },
+    { 0xAA5A, 0xAA5B },
+    { 0xAA60, 0xABFF },
     { 0xD7A4, 0xD7FF },
     { 0xFA2E, 0xFA2F },
     { 0xFA6B, 0xFA6F },
@@ -361,7 +369,7 @@
     { 0xFDC8, 0xFDEF },
     { 0xFDFE, 0xFDFF },
     { 0xFE1A, 0xFE1F },
-    { 0xFE24, 0xFE2F },
+    { 0xFE27, 0xFE2F },
     { 0xFE53, 0xFE53 },
     { 0xFE67, 0xFE67 },
     { 0xFE6C, 0xFE6F },
@@ -385,7 +393,11 @@
     { 0x100FB, 0x100FF },
     { 0x10103, 0x10106 },
     { 0x10134, 0x10136 },
-    { 0x1018B, 0x102FF },
+    { 0x1018B, 0x1018F },
+    { 0x1019C, 0x101CF },
+    { 0x101FE, 0x1027F },
+    { 0x1029D, 0x1029F },
+    { 0x102D1, 0x102FF },
     { 0x1031F, 0x1031F },
     { 0x10324, 0x1032F },
     { 0x1034B, 0x1037F },
@@ -401,7 +413,8 @@
     { 0x1083D, 0x1083E },
     { 0x10840, 0x108FF },
     { 0x1091A, 0x1091E },
-    { 0x10920, 0x109FF },
+    { 0x1093A, 0x1093E },
+    { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A07, 0x10A0B },
     { 0x10A14, 0x10A14 },
@@ -414,7 +427,7 @@
     { 0x12463, 0x1246F },
     { 0x12474, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
-    { 0x1D127, 0x1D129 },
+    { 0x1D127, 0x1D128 },
     { 0x1D1DE, 0x1D1FF },
     { 0x1D246, 0x1D2FF },
     { 0x1D357, 0x1D35F },
@@ -439,7 +452,9 @@
     { 0x1D551, 0x1D551 },
     { 0x1D6A6, 0x1D6A7 },
     { 0x1D7CC, 0x1D7CD },
-    { 0x1D800, 0x1FFFF },
+    { 0x1D800, 0x1EFFF },
+    { 0x1F02C, 0x1F02F },
+    { 0x1F094, 0x1FFFF },
     { 0x2A6D7, 0x2F7FF },
     { 0x2FA1E, 0xE0000 },
     { 0xE0002, 0xE001F },
--- a/tests/unictype/test-categ_L.c
+++ b/tests/unictype/test-categ_L.c
@@ -27,23 +27,24 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
@@ -53,8 +54,7 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
@@ -63,6 +63,7 @@
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -114,11 +115,14 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -132,7 +136,9 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -160,12 +166,17 @@
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -205,6 +216,7 @@
     { 0x17DC, 0x17DC },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
@@ -213,10 +225,13 @@
     { 0x1A00, 0x1A16 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BAF },
+    { 0x1C00, 0x1C23 },
+    { 0x1C4D, 0x1C4F },
+    { 0x1C5A, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -254,8 +269,8 @@
     { 0x2183, 0x2184 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -269,6 +284,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3006 },
     { 0x3031, 0x3035 },
     { 0x303B, 0x303C },
@@ -276,19 +292,33 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA61F },
+    { 0xA62A, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA90A, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -323,6 +353,8 @@
     { 0x1003F, 0x1004D },
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x10340 },
     { 0x10342, 0x10349 },
@@ -337,6 +369,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-categ_Ll.c
+++ b/tests/unictype/test-categ_Ll.c
@@ -165,6 +165,9 @@
     { 0x024D, 0x024D },
     { 0x024F, 0x0293 },
     { 0x0295, 0x02AF },
+    { 0x0371, 0x0371 },
+    { 0x0373, 0x0373 },
+    { 0x0377, 0x0377 },
     { 0x037B, 0x037D },
     { 0x0390, 0x0390 },
     { 0x03AC, 0x03CE },
@@ -271,6 +274,14 @@
     { 0x050F, 0x050F },
     { 0x0511, 0x0511 },
     { 0x0513, 0x0513 },
+    { 0x0515, 0x0515 },
+    { 0x0517, 0x0517 },
+    { 0x0519, 0x0519 },
+    { 0x051B, 0x051B },
+    { 0x051D, 0x051D },
+    { 0x051F, 0x051F },
+    { 0x0521, 0x0521 },
+    { 0x0523, 0x0523 },
     { 0x0561, 0x0587 },
     { 0x1D00, 0x1D2B },
     { 0x1D62, 0x1D77 },
@@ -349,7 +360,8 @@
     { 0x1E8F, 0x1E8F },
     { 0x1E91, 0x1E91 },
     { 0x1E93, 0x1E93 },
-    { 0x1E95, 0x1E9B },
+    { 0x1E95, 0x1E9D },
+    { 0x1E9F, 0x1E9F },
     { 0x1EA1, 0x1EA1 },
     { 0x1EA3, 0x1EA3 },
     { 0x1EA5, 0x1EA5 },
@@ -395,7 +407,9 @@
     { 0x1EF5, 0x1EF5 },
     { 0x1EF7, 0x1EF7 },
     { 0x1EF9, 0x1EF9 },
-    { 0x1F00, 0x1F07 },
+    { 0x1EFB, 0x1EFB },
+    { 0x1EFD, 0x1EFD },
+    { 0x1EFF, 0x1F07 },
     { 0x1F10, 0x1F15 },
     { 0x1F20, 0x1F27 },
     { 0x1F30, 0x1F37 },
@@ -434,8 +448,9 @@
     { 0x2C68, 0x2C68 },
     { 0x2C6A, 0x2C6A },
     { 0x2C6C, 0x2C6C },
-    { 0x2C74, 0x2C74 },
-    { 0x2C76, 0x2C77 },
+    { 0x2C71, 0x2C71 },
+    { 0x2C73, 0x2C74 },
+    { 0x2C76, 0x2C7C },
     { 0x2C81, 0x2C81 },
     { 0x2C83, 0x2C83 },
     { 0x2C85, 0x2C85 },
@@ -487,6 +502,87 @@
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE4 },
     { 0x2D00, 0x2D25 },
+    { 0xA641, 0xA641 },
+    { 0xA643, 0xA643 },
+    { 0xA645, 0xA645 },
+    { 0xA647, 0xA647 },
+    { 0xA649, 0xA649 },
+    { 0xA64B, 0xA64B },
+    { 0xA64D, 0xA64D },
+    { 0xA64F, 0xA64F },
+    { 0xA651, 0xA651 },
+    { 0xA653, 0xA653 },
+    { 0xA655, 0xA655 },
+    { 0xA657, 0xA657 },
+    { 0xA659, 0xA659 },
+    { 0xA65B, 0xA65B },
+    { 0xA65D, 0xA65D },
+    { 0xA65F, 0xA65F },
+    { 0xA663, 0xA663 },
+    { 0xA665, 0xA665 },
+    { 0xA667, 0xA667 },
+    { 0xA669, 0xA669 },
+    { 0xA66B, 0xA66B },
+    { 0xA66D, 0xA66D },
+    { 0xA681, 0xA681 },
+    { 0xA683, 0xA683 },
+    { 0xA685, 0xA685 },
+    { 0xA687, 0xA687 },
+    { 0xA689, 0xA689 },
+    { 0xA68B, 0xA68B },
+    { 0xA68D, 0xA68D },
+    { 0xA68F, 0xA68F },
+    { 0xA691, 0xA691 },
+    { 0xA693, 0xA693 },
+    { 0xA695, 0xA695 },
+    { 0xA697, 0xA697 },
+    { 0xA723, 0xA723 },
+    { 0xA725, 0xA725 },
+    { 0xA727, 0xA727 },
+    { 0xA729, 0xA729 },
+    { 0xA72B, 0xA72B },
+    { 0xA72D, 0xA72D },
+    { 0xA72F, 0xA731 },
+    { 0xA733, 0xA733 },
+    { 0xA735, 0xA735 },
+    { 0xA737, 0xA737 },
+    { 0xA739, 0xA739 },
+    { 0xA73B, 0xA73B },
+    { 0xA73D, 0xA73D },
+    { 0xA73F, 0xA73F },
+    { 0xA741, 0xA741 },
+    { 0xA743, 0xA743 },
+    { 0xA745, 0xA745 },
+    { 0xA747, 0xA747 },
+    { 0xA749, 0xA749 },
+    { 0xA74B, 0xA74B },
+    { 0xA74D, 0xA74D },
+    { 0xA74F, 0xA74F },
+    { 0xA751, 0xA751 },
+    { 0xA753, 0xA753 },
+    { 0xA755, 0xA755 },
+    { 0xA757, 0xA757 },
+    { 0xA759, 0xA759 },
+    { 0xA75B, 0xA75B },
+    { 0xA75D, 0xA75D },
+    { 0xA75F, 0xA75F },
+    { 0xA761, 0xA761 },
+    { 0xA763, 0xA763 },
+    { 0xA765, 0xA765 },
+    { 0xA767, 0xA767 },
+    { 0xA769, 0xA769 },
+    { 0xA76B, 0xA76B },
+    { 0xA76D, 0xA76D },
+    { 0xA76F, 0xA76F },
+    { 0xA771, 0xA778 },
+    { 0xA77A, 0xA77A },
+    { 0xA77C, 0xA77C },
+    { 0xA77F, 0xA77F },
+    { 0xA781, 0xA781 },
+    { 0xA783, 0xA783 },
+    { 0xA785, 0xA785 },
+    { 0xA787, 0xA787 },
+    { 0xA78C, 0xA78C },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFF41, 0xFF5A },
--- a/tests/unictype/test-categ_Lm.c
+++ b/tests/unictype/test-categ_Lm.c
@@ -20,30 +20,40 @@
     { 0x02B0, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
+    { 0x0374, 0x0374 },
     { 0x037A, 0x037A },
     { 0x0559, 0x0559 },
     { 0x0640, 0x0640 },
     { 0x06E5, 0x06E6 },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0971, 0x0971 },
     { 0x0E46, 0x0E46 },
     { 0x0EC6, 0x0EC6 },
     { 0x10FC, 0x10FC },
     { 0x17D7, 0x17D7 },
     { 0x1843, 0x1843 },
+    { 0x1C78, 0x1C7D },
     { 0x1D2C, 0x1D61 },
     { 0x1D78, 0x1D78 },
     { 0x1D9B, 0x1DBF },
     { 0x2090, 0x2094 },
+    { 0x2C7D, 0x2C7D },
     { 0x2D6F, 0x2D6F },
+    { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3005 },
     { 0x3031, 0x3035 },
     { 0x303B, 0x303B },
     { 0x309D, 0x309E },
     { 0x30FC, 0x30FE },
     { 0xA015, 0xA015 },
-    { 0xA717, 0xA71A },
+    { 0xA60C, 0xA60C },
+    { 0xA67F, 0xA67F },
+    { 0xA717, 0xA71F },
+    { 0xA770, 0xA770 },
+    { 0xA788, 0xA788 },
     { 0xFF70, 0xFF70 },
     { 0xFF9E, 0xFF9F }
 
--- a/tests/unictype/test-categ_Lo.c
+++ b/tests/unictype/test-categ_Lo.c
@@ -22,7 +22,7 @@
     { 0x0294, 0x0294 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
+    { 0x0621, 0x063F },
     { 0x0641, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
@@ -32,14 +32,14 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07CA, 0x07EA },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
+    { 0x0972, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -91,11 +91,14 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -109,7 +112,9 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -136,12 +141,17 @@
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
     { 0x10D0, 0x10FA },
     { 0x1100, 0x1159 },
     { 0x115F, 0x11A2 },
@@ -179,6 +189,7 @@
     { 0x1820, 0x1842 },
     { 0x1844, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
@@ -187,6 +198,11 @@
     { 0x1A00, 0x1A16 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BAF },
+    { 0x1C00, 0x1C23 },
+    { 0x1C4D, 0x1C4F },
+    { 0x1C5A, 0x1C77 },
     { 0x2135, 0x2138 },
     { 0x2D30, 0x2D65 },
     { 0x2D80, 0x2D96 },
@@ -204,19 +220,29 @@
     { 0x309F, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FF, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA014 },
     { 0xA016, 0xA48C },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60B },
+    { 0xA610, 0xA61F },
+    { 0xA62A, 0xA62B },
+    { 0xA66E, 0xA66E },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA90A, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -249,6 +275,8 @@
     { 0x1003F, 0x1004D },
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x10340 },
     { 0x10342, 0x10349 },
@@ -263,6 +291,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-categ_Lu.c
+++ b/tests/unictype/test-categ_Lu.c
@@ -161,12 +161,16 @@
     { 0x024A, 0x024A },
     { 0x024C, 0x024C },
     { 0x024E, 0x024E },
+    { 0x0370, 0x0370 },
+    { 0x0372, 0x0372 },
+    { 0x0376, 0x0376 },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x038F },
     { 0x0391, 0x03A1 },
     { 0x03A3, 0x03AB },
+    { 0x03CF, 0x03CF },
     { 0x03D2, 0x03D4 },
     { 0x03D8, 0x03D8 },
     { 0x03DA, 0x03DA },
@@ -269,6 +273,14 @@
     { 0x050E, 0x050E },
     { 0x0510, 0x0510 },
     { 0x0512, 0x0512 },
+    { 0x0514, 0x0514 },
+    { 0x0516, 0x0516 },
+    { 0x0518, 0x0518 },
+    { 0x051A, 0x051A },
+    { 0x051C, 0x051C },
+    { 0x051E, 0x051E },
+    { 0x0520, 0x0520 },
+    { 0x0522, 0x0522 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
@@ -346,6 +358,7 @@
     { 0x1E90, 0x1E90 },
     { 0x1E92, 0x1E92 },
     { 0x1E94, 0x1E94 },
+    { 0x1E9E, 0x1E9E },
     { 0x1EA0, 0x1EA0 },
     { 0x1EA2, 0x1EA2 },
     { 0x1EA4, 0x1EA4 },
@@ -391,6 +404,9 @@
     { 0x1EF4, 0x1EF4 },
     { 0x1EF6, 0x1EF6 },
     { 0x1EF8, 0x1EF8 },
+    { 0x1EFA, 0x1EFA },
+    { 0x1EFC, 0x1EFC },
+    { 0x1EFE, 0x1EFE },
     { 0x1F08, 0x1F0F },
     { 0x1F18, 0x1F1D },
     { 0x1F28, 0x1F2F },
@@ -426,6 +442,8 @@
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
+    { 0x2C6D, 0x2C6F },
+    { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
     { 0x2C80, 0x2C80 },
     { 0x2C82, 0x2C82 },
@@ -477,6 +495,86 @@
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0xA640, 0xA640 },
+    { 0xA642, 0xA642 },
+    { 0xA644, 0xA644 },
+    { 0xA646, 0xA646 },
+    { 0xA648, 0xA648 },
+    { 0xA64A, 0xA64A },
+    { 0xA64C, 0xA64C },
+    { 0xA64E, 0xA64E },
+    { 0xA650, 0xA650 },
+    { 0xA652, 0xA652 },
+    { 0xA654, 0xA654 },
+    { 0xA656, 0xA656 },
+    { 0xA658, 0xA658 },
+    { 0xA65A, 0xA65A },
+    { 0xA65C, 0xA65C },
+    { 0xA65E, 0xA65E },
+    { 0xA662, 0xA662 },
+    { 0xA664, 0xA664 },
+    { 0xA666, 0xA666 },
+    { 0xA668, 0xA668 },
+    { 0xA66A, 0xA66A },
+    { 0xA66C, 0xA66C },
+    { 0xA680, 0xA680 },
+    { 0xA682, 0xA682 },
+    { 0xA684, 0xA684 },
+    { 0xA686, 0xA686 },
+    { 0xA688, 0xA688 },
+    { 0xA68A, 0xA68A },
+    { 0xA68C, 0xA68C },
+    { 0xA68E, 0xA68E },
+    { 0xA690, 0xA690 },
+    { 0xA692, 0xA692 },
+    { 0xA694, 0xA694 },
+    { 0xA696, 0xA696 },
+    { 0xA722, 0xA722 },
+    { 0xA724, 0xA724 },
+    { 0xA726, 0xA726 },
+    { 0xA728, 0xA728 },
+    { 0xA72A, 0xA72A },
+    { 0xA72C, 0xA72C },
+    { 0xA72E, 0xA72E },
+    { 0xA732, 0xA732 },
+    { 0xA734, 0xA734 },
+    { 0xA736, 0xA736 },
+    { 0xA738, 0xA738 },
+    { 0xA73A, 0xA73A },
+    { 0xA73C, 0xA73C },
+    { 0xA73E, 0xA73E },
+    { 0xA740, 0xA740 },
+    { 0xA742, 0xA742 },
+    { 0xA744, 0xA744 },
+    { 0xA746, 0xA746 },
+    { 0xA748, 0xA748 },
+    { 0xA74A, 0xA74A },
+    { 0xA74C, 0xA74C },
+    { 0xA74E, 0xA74E },
+    { 0xA750, 0xA750 },
+    { 0xA752, 0xA752 },
+    { 0xA754, 0xA754 },
+    { 0xA756, 0xA756 },
+    { 0xA758, 0xA758 },
+    { 0xA75A, 0xA75A },
+    { 0xA75C, 0xA75C },
+    { 0xA75E, 0xA75E },
+    { 0xA760, 0xA760 },
+    { 0xA762, 0xA762 },
+    { 0xA764, 0xA764 },
+    { 0xA766, 0xA766 },
+    { 0xA768, 0xA768 },
+    { 0xA76A, 0xA76A },
+    { 0xA76C, 0xA76C },
+    { 0xA76E, 0xA76E },
+    { 0xA779, 0xA779 },
+    { 0xA77B, 0xA77B },
+    { 0xA77D, 0xA77E },
+    { 0xA780, 0xA780 },
+    { 0xA782, 0xA782 },
+    { 0xA784, 0xA784 },
+    { 0xA786, 0xA786 },
+    { 0xA78B, 0xA78B },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 },
     { 0x1D400, 0x1D419 },
--- a/tests/unictype/test-categ_M.c
+++ b/tests/unictype/test-categ_M.c
@@ -18,14 +18,13 @@
 #include "test-predicate-part1.h"
 
     { 0x0300, 0x036F },
-    { 0x0483, 0x0486 },
-    { 0x0488, 0x0489 },
+    { 0x0483, 0x0489 },
     { 0x0591, 0x05BD },
     { 0x05BF, 0x05BF },
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x065E },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
@@ -53,7 +52,9 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0ABC, 0x0ABC },
     { 0x0ABE, 0x0AC5 },
@@ -62,10 +63,11 @@
     { 0x0AE2, 0x0AE3 },
     { 0x0B01, 0x0B03 },
     { 0x0B3C, 0x0B3C },
-    { 0x0B3E, 0x0B43 },
+    { 0x0B3E, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
@@ -76,6 +78,7 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0C82, 0x0C83 },
     { 0x0CBC, 0x0CBC },
     { 0x0CBE, 0x0CC4 },
@@ -84,10 +87,11 @@
     { 0x0CD5, 0x0CD6 },
     { 0x0CE2, 0x0CE3 },
     { 0x0D02, 0x0D03 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3E, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
+    { 0x0D62, 0x0D63 },
     { 0x0D82, 0x0D83 },
     { 0x0DCA, 0x0DCA },
     { 0x0DCF, 0x0DD4 },
@@ -111,9 +115,14 @@
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
+    { 0x102B, 0x103E },
     { 0x1056, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1062, 0x1064 },
+    { 0x1067, 0x106D },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x108D },
+    { 0x108F, 0x108F },
     { 0x135F, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
@@ -131,18 +140,32 @@
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B6B, 0x1B73 },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B82 },
+    { 0x1BA1, 0x1BAA },
+    { 0x1C24, 0x1C37 },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
-    { 0x20D0, 0x20EF },
+    { 0x20D0, 0x20F0 },
+    { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
+    { 0xA66F, 0xA672 },
+    { 0xA67C, 0xA67D },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA827 },
+    { 0xA880, 0xA881 },
+    { 0xA8B4, 0xA8C4 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA953 },
+    { 0xAA29, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4D },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
+    { 0x101FD, 0x101FD },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
--- a/tests/unictype/test-categ_Mc.c
+++ b/tests/unictype/test-categ_Mc.c
@@ -61,10 +61,16 @@
     { 0x0DF2, 0x0DF3 },
     { 0x0F3E, 0x0F3F },
     { 0x0F7F, 0x0F7F },
-    { 0x102C, 0x102C },
+    { 0x102B, 0x102C },
     { 0x1031, 0x1031 },
     { 0x1038, 0x1038 },
+    { 0x103B, 0x103C },
     { 0x1056, 0x1057 },
+    { 0x1062, 0x1064 },
+    { 0x1067, 0x106D },
+    { 0x1083, 0x1084 },
+    { 0x1087, 0x108C },
+    { 0x108F, 0x108F },
     { 0x17B6, 0x17B6 },
     { 0x17BE, 0x17C5 },
     { 0x17C7, 0x17C8 },
@@ -80,9 +86,20 @@
     { 0x1B3B, 0x1B3B },
     { 0x1B3D, 0x1B41 },
     { 0x1B43, 0x1B44 },
-    { 0xA802, 0xA802 },
+    { 0x1B82, 0x1B82 },
+    { 0x1BA1, 0x1BA1 },
+    { 0x1BA6, 0x1BA7 },
+    { 0x1BAA, 0x1BAA },
+    { 0x1C24, 0x1C2B },
+    { 0x1C34, 0x1C35 },
     { 0xA823, 0xA824 },
     { 0xA827, 0xA827 },
+    { 0xA880, 0xA881 },
+    { 0xA8B4, 0xA8C3 },
+    { 0xA952, 0xA953 },
+    { 0xAA2F, 0xAA30 },
+    { 0xAA33, 0xAA34 },
+    { 0xAA4D, 0xAA4D },
     { 0x1D165, 0x1D166 },
     { 0x1D16D, 0x1D172 }
 
--- a/tests/unictype/test-categ_Me.c
+++ b/tests/unictype/test-categ_Me.c
@@ -20,7 +20,8 @@
     { 0x0488, 0x0489 },
     { 0x06DE, 0x06DE },
     { 0x20DD, 0x20E0 },
-    { 0x20E2, 0x20E4 }
+    { 0x20E2, 0x20E4 },
+    { 0xA670, 0xA672 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Me)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-categ_Mn.c
+++ b/tests/unictype/test-categ_Mn.c
@@ -18,13 +18,13 @@
 #include "test-predicate-part1.h"
 
     { 0x0300, 0x036F },
-    { 0x0483, 0x0486 },
+    { 0x0483, 0x0487 },
     { 0x0591, 0x05BD },
     { 0x05BF, 0x05BF },
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x065E },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
@@ -51,7 +51,9 @@
     { 0x0A41, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A82 },
     { 0x0ABC, 0x0ABC },
     { 0x0AC1, 0x0AC5 },
@@ -61,9 +63,10 @@
     { 0x0B01, 0x0B01 },
     { 0x0B3C, 0x0B3C },
     { 0x0B3F, 0x0B3F },
-    { 0x0B41, 0x0B43 },
+    { 0x0B41, 0x0B44 },
     { 0x0B4D, 0x0B4D },
     { 0x0B56, 0x0B56 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BC0, 0x0BC0 },
     { 0x0BCD, 0x0BCD },
@@ -71,13 +74,15 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0CBC, 0x0CBC },
     { 0x0CBF, 0x0CBF },
     { 0x0CC6, 0x0CC6 },
     { 0x0CCC, 0x0CCD },
     { 0x0CE2, 0x0CE3 },
-    { 0x0D41, 0x0D43 },
+    { 0x0D41, 0x0D44 },
     { 0x0D4D, 0x0D4D },
+    { 0x0D62, 0x0D63 },
     { 0x0DCA, 0x0DCA },
     { 0x0DD2, 0x0DD4 },
     { 0x0DD6, 0x0DD6 },
@@ -99,10 +104,15 @@
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
-    { 0x1032, 0x1032 },
-    { 0x1036, 0x1037 },
-    { 0x1039, 0x1039 },
+    { 0x1032, 0x1037 },
+    { 0x1039, 0x103A },
+    { 0x103D, 0x103E },
     { 0x1058, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x1082 },
+    { 0x1085, 0x1086 },
+    { 0x108D, 0x108D },
     { 0x135F, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
@@ -125,19 +135,37 @@
     { 0x1B3C, 0x1B3C },
     { 0x1B42, 0x1B42 },
     { 0x1B6B, 0x1B73 },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B81 },
+    { 0x1BA2, 0x1BA5 },
+    { 0x1BA8, 0x1BA9 },
+    { 0x1C2C, 0x1C33 },
+    { 0x1C36, 0x1C37 },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
-    { 0x20E5, 0x20EF },
+    { 0x20E5, 0x20F0 },
+    { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
+    { 0xA66F, 0xA66F },
+    { 0xA67C, 0xA67D },
+    { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA951 },
+    { 0xAA29, 0xAA2E },
+    { 0xAA31, 0xAA32 },
+    { 0xAA35, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4C },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
+    { 0x101FD, 0x101FD },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
--- a/tests/unictype/test-categ_N.c
+++ b/tests/unictype/test-categ_N.c
@@ -32,12 +32,14 @@
     { 0x0B66, 0x0B6F },
     { 0x0BE6, 0x0BF2 },
     { 0x0C66, 0x0C6F },
+    { 0x0C78, 0x0C7E },
     { 0x0CE6, 0x0CEF },
-    { 0x0D66, 0x0D6F },
+    { 0x0D66, 0x0D75 },
     { 0x0E50, 0x0E59 },
     { 0x0ED0, 0x0ED9 },
     { 0x0F20, 0x0F33 },
     { 0x1040, 0x1049 },
+    { 0x1090, 0x1099 },
     { 0x1369, 0x137C },
     { 0x16EE, 0x16F0 },
     { 0x17E0, 0x17E9 },
@@ -46,10 +48,14 @@
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
     { 0x1B50, 0x1B59 },
+    { 0x1BB0, 0x1BB9 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C50, 0x1C59 },
     { 0x2070, 0x2070 },
     { 0x2074, 0x2079 },
     { 0x2080, 0x2089 },
     { 0x2153, 0x2182 },
+    { 0x2185, 0x2188 },
     { 0x2460, 0x249B },
     { 0x24EA, 0x24FF },
     { 0x2776, 0x2793 },
@@ -62,6 +68,10 @@
     { 0x3251, 0x325F },
     { 0x3280, 0x3289 },
     { 0x32B1, 0x32BF },
+    { 0xA620, 0xA629 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA909 },
+    { 0xAA50, 0xAA59 },
     { 0xFF10, 0xFF19 },
     { 0x10107, 0x10133 },
     { 0x10140, 0x10178 },
--- a/tests/unictype/test-categ_Nd.c
+++ b/tests/unictype/test-categ_Nd.c
@@ -34,11 +34,19 @@
     { 0x0ED0, 0x0ED9 },
     { 0x0F20, 0x0F29 },
     { 0x1040, 0x1049 },
+    { 0x1090, 0x1099 },
     { 0x17E0, 0x17E9 },
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
     { 0x1B50, 0x1B59 },
+    { 0x1BB0, 0x1BB9 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C50, 0x1C59 },
+    { 0xA620, 0xA629 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA909 },
+    { 0xAA50, 0xAA59 },
     { 0xFF10, 0xFF19 },
     { 0x104A0, 0x104A9 },
     { 0x1D7CE, 0x1D7FF }
--- a/tests/unictype/test-categ_Nl.c
+++ b/tests/unictype/test-categ_Nl.c
@@ -19,6 +19,7 @@
 
     { 0x16EE, 0x16F0 },
     { 0x2160, 0x2182 },
+    { 0x2185, 0x2188 },
     { 0x3007, 0x3007 },
     { 0x3021, 0x3029 },
     { 0x3038, 0x303A },
--- a/tests/unictype/test-categ_No.c
+++ b/tests/unictype/test-categ_No.c
@@ -22,6 +22,8 @@
     { 0x00BC, 0x00BE },
     { 0x09F4, 0x09F9 },
     { 0x0BF0, 0x0BF2 },
+    { 0x0C78, 0x0C7E },
+    { 0x0D70, 0x0D75 },
     { 0x0F2A, 0x0F33 },
     { 0x1369, 0x137C },
     { 0x17F0, 0x17F9 },
--- a/tests/unictype/test-categ_P.c
+++ b/tests/unictype/test-categ_P.c
@@ -40,6 +40,7 @@
     { 0x05C3, 0x05C3 },
     { 0x05C6, 0x05C6 },
     { 0x05F3, 0x05F4 },
+    { 0x0609, 0x060A },
     { 0x060C, 0x060D },
     { 0x061B, 0x061B },
     { 0x061E, 0x061F },
@@ -55,7 +56,7 @@
     { 0x0F04, 0x0F12 },
     { 0x0F3A, 0x0F3D },
     { 0x0F85, 0x0F85 },
-    { 0x0FD0, 0x0FD1 },
+    { 0x0FD0, 0x0FD4 },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
@@ -70,6 +71,8 @@
     { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
     { 0x1B5A, 0x1B60 },
+    { 0x1C3B, 0x1C3F },
+    { 0x1C7E, 0x1C7F },
     { 0x2010, 0x2027 },
     { 0x2030, 0x2043 },
     { 0x2045, 0x2051 },
@@ -79,14 +82,14 @@
     { 0x2329, 0x232A },
     { 0x2768, 0x2775 },
     { 0x27C5, 0x27C6 },
-    { 0x27E6, 0x27EB },
+    { 0x27E6, 0x27EF },
     { 0x2983, 0x2998 },
     { 0x29D8, 0x29DB },
     { 0x29FC, 0x29FD },
     { 0x2CF9, 0x2CFC },
     { 0x2CFE, 0x2CFF },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2E00, 0x2E2E },
+    { 0x2E30, 0x2E30 },
     { 0x3001, 0x3003 },
     { 0x3008, 0x3011 },
     { 0x3014, 0x301F },
@@ -94,7 +97,14 @@
     { 0x303D, 0x303D },
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
+    { 0xA60D, 0xA60F },
+    { 0xA673, 0xA673 },
+    { 0xA67E, 0xA67E },
     { 0xA874, 0xA877 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA92E, 0xA92F },
+    { 0xA95F, 0xA95F },
+    { 0xAA5C, 0xAA5F },
     { 0xFD3E, 0xFD3F },
     { 0xFE10, 0xFE19 },
     { 0xFE30, 0xFE52 },
@@ -116,6 +126,7 @@
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
     { 0x1091F, 0x1091F },
+    { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
     { 0x12470, 0x12473 }
 
--- a/tests/unictype/test-categ_Pd.c
+++ b/tests/unictype/test-categ_Pd.c
@@ -19,9 +19,11 @@
 
     { 0x002D, 0x002D },
     { 0x058A, 0x058A },
+    { 0x05BE, 0x05BE },
     { 0x1806, 0x1806 },
     { 0x2010, 0x2015 },
     { 0x2E17, 0x2E17 },
+    { 0x2E1A, 0x2E1A },
     { 0x301C, 0x301C },
     { 0x3030, 0x3030 },
     { 0x30A0, 0x30A0 },
--- a/tests/unictype/test-categ_Pe.c
+++ b/tests/unictype/test-categ_Pe.c
@@ -38,6 +38,8 @@
     { 0x27E7, 0x27E7 },
     { 0x27E9, 0x27E9 },
     { 0x27EB, 0x27EB },
+    { 0x27ED, 0x27ED },
+    { 0x27EF, 0x27EF },
     { 0x2984, 0x2984 },
     { 0x2986, 0x2986 },
     { 0x2988, 0x2988 },
@@ -52,6 +54,10 @@
     { 0x29D9, 0x29D9 },
     { 0x29DB, 0x29DB },
     { 0x29FD, 0x29FD },
+    { 0x2E23, 0x2E23 },
+    { 0x2E25, 0x2E25 },
+    { 0x2E27, 0x2E27 },
+    { 0x2E29, 0x2E29 },
     { 0x3009, 0x3009 },
     { 0x300B, 0x300B },
     { 0x300D, 0x300D },
--- a/tests/unictype/test-categ_Pf.c
+++ b/tests/unictype/test-categ_Pf.c
@@ -25,7 +25,8 @@
     { 0x2E05, 0x2E05 },
     { 0x2E0A, 0x2E0A },
     { 0x2E0D, 0x2E0D },
-    { 0x2E1D, 0x2E1D }
+    { 0x2E1D, 0x2E1D },
+    { 0x2E21, 0x2E21 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pf)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-categ_Pi.c
+++ b/tests/unictype/test-categ_Pi.c
@@ -26,7 +26,8 @@
     { 0x2E04, 0x2E04 },
     { 0x2E09, 0x2E09 },
     { 0x2E0C, 0x2E0C },
-    { 0x2E1C, 0x2E1C }
+    { 0x2E1C, 0x2E1C },
+    { 0x2E20, 0x2E20 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pi)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-categ_Po.c
+++ b/tests/unictype/test-categ_Po.c
@@ -32,11 +32,11 @@
     { 0x0387, 0x0387 },
     { 0x055A, 0x055F },
     { 0x0589, 0x0589 },
-    { 0x05BE, 0x05BE },
     { 0x05C0, 0x05C0 },
     { 0x05C3, 0x05C3 },
     { 0x05C6, 0x05C6 },
     { 0x05F3, 0x05F4 },
+    { 0x0609, 0x060A },
     { 0x060C, 0x060D },
     { 0x061B, 0x061B },
     { 0x061E, 0x061F },
@@ -51,7 +51,7 @@
     { 0x0E5A, 0x0E5B },
     { 0x0F04, 0x0F12 },
     { 0x0F85, 0x0F85 },
-    { 0x0FD0, 0x0FD1 },
+    { 0x0FD0, 0x0FD4 },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
@@ -66,6 +66,8 @@
     { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
     { 0x1B5A, 0x1B60 },
+    { 0x1C3B, 0x1C3F },
+    { 0x1C7E, 0x1C7F },
     { 0x2016, 0x2017 },
     { 0x2020, 0x2027 },
     { 0x2030, 0x2038 },
@@ -80,10 +82,22 @@
     { 0x2E06, 0x2E08 },
     { 0x2E0B, 0x2E0B },
     { 0x2E0E, 0x2E16 },
+    { 0x2E18, 0x2E19 },
+    { 0x2E1B, 0x2E1B },
+    { 0x2E1E, 0x2E1F },
+    { 0x2E2A, 0x2E2E },
+    { 0x2E30, 0x2E30 },
     { 0x3001, 0x3003 },
     { 0x303D, 0x303D },
     { 0x30FB, 0x30FB },
+    { 0xA60D, 0xA60F },
+    { 0xA673, 0xA673 },
+    { 0xA67E, 0xA67E },
     { 0xA874, 0xA877 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA92E, 0xA92F },
+    { 0xA95F, 0xA95F },
+    { 0xAA5C, 0xAA5F },
     { 0xFE10, 0xFE16 },
     { 0xFE19, 0xFE19 },
     { 0xFE30, 0xFE30 },
@@ -108,6 +122,7 @@
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
     { 0x1091F, 0x1091F },
+    { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
     { 0x12470, 0x12473 }
 
--- a/tests/unictype/test-categ_Ps.c
+++ b/tests/unictype/test-categ_Ps.c
@@ -40,6 +40,8 @@
     { 0x27E6, 0x27E6 },
     { 0x27E8, 0x27E8 },
     { 0x27EA, 0x27EA },
+    { 0x27EC, 0x27EC },
+    { 0x27EE, 0x27EE },
     { 0x2983, 0x2983 },
     { 0x2985, 0x2985 },
     { 0x2987, 0x2987 },
@@ -54,6 +56,10 @@
     { 0x29D8, 0x29D8 },
     { 0x29DA, 0x29DA },
     { 0x29FC, 0x29FC },
+    { 0x2E22, 0x2E22 },
+    { 0x2E24, 0x2E24 },
+    { 0x2E26, 0x2E26 },
+    { 0x2E28, 0x2E28 },
     { 0x3008, 0x3008 },
     { 0x300A, 0x300A },
     { 0x300C, 0x300C },
--- a/tests/unictype/test-categ_S.c
+++ b/tests/unictype/test-categ_S.c
@@ -34,12 +34,14 @@
     { 0x00F7, 0x00F7 },
     { 0x02C2, 0x02C5 },
     { 0x02D2, 0x02DF },
-    { 0x02E5, 0x02ED },
+    { 0x02E5, 0x02EB },
+    { 0x02ED, 0x02ED },
     { 0x02EF, 0x02FF },
-    { 0x0374, 0x0375 },
+    { 0x0375, 0x0375 },
     { 0x0384, 0x0385 },
     { 0x03F6, 0x03F6 },
     { 0x0482, 0x0482 },
+    { 0x0606, 0x0608 },
     { 0x060B, 0x060B },
     { 0x060E, 0x060F },
     { 0x06E9, 0x06E9 },
@@ -50,7 +52,9 @@
     { 0x0AF1, 0x0AF1 },
     { 0x0B70, 0x0B70 },
     { 0x0BF3, 0x0BFA },
+    { 0x0C7F, 0x0C7F },
     { 0x0CF1, 0x0CF2 },
+    { 0x0D79, 0x0D79 },
     { 0x0E3F, 0x0E3F },
     { 0x0F01, 0x0F03 },
     { 0x0F13, 0x0F17 },
@@ -60,7 +64,8 @@
     { 0x0F38, 0x0F38 },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
-    { 0x0FCF, 0x0FCF },
+    { 0x0FCE, 0x0FCF },
+    { 0x109E, 0x109F },
     { 0x1360, 0x1360 },
     { 0x1390, 0x1399 },
     { 0x17DB, 0x17DB },
@@ -92,13 +97,15 @@
     { 0x213A, 0x213B },
     { 0x2140, 0x2144 },
     { 0x214A, 0x214D },
+    { 0x214F, 0x214F },
     { 0x2190, 0x2328 },
     { 0x232B, 0x23E7 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x249C, 0x24E9 },
-    { 0x2500, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x2500, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -113,12 +120,13 @@
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27C4 },
     { 0x27C7, 0x27CA },
+    { 0x27CC, 0x27CC },
     { 0x27D0, 0x27E5 },
     { 0x27F0, 0x2982 },
     { 0x2999, 0x29D7 },
     { 0x29DC, 0x29FB },
-    { 0x29FE, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x29FE, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2CE5, 0x2CEA },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
@@ -132,7 +140,7 @@
     { 0x309B, 0x309C },
     { 0x3190, 0x3191 },
     { 0x3196, 0x319F },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
     { 0x322A, 0x3243 },
     { 0x3250, 0x3250 },
@@ -144,6 +152,7 @@
     { 0xA490, 0xA4C6 },
     { 0xA700, 0xA716 },
     { 0xA720, 0xA721 },
+    { 0xA789, 0xA78A },
     { 0xA828, 0xA82B },
     { 0xFB29, 0xFB29 },
     { 0xFDFC, 0xFDFD },
@@ -163,9 +172,11 @@
     { 0x10102, 0x10102 },
     { 0x10137, 0x1013F },
     { 0x10179, 0x10189 },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FC },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D164 },
+    { 0x1D129, 0x1D164 },
     { 0x1D16A, 0x1D16C },
     { 0x1D183, 0x1D184 },
     { 0x1D18C, 0x1D1A9 },
@@ -182,7 +193,9 @@
     { 0x1D76F, 0x1D76F },
     { 0x1D789, 0x1D789 },
     { 0x1D7A9, 0x1D7A9 },
-    { 0x1D7C3, 0x1D7C3 }
+    { 0x1D7C3, 0x1D7C3 },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_S)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-categ_Sk.c
+++ b/tests/unictype/test-categ_Sk.c
@@ -25,9 +25,10 @@
     { 0x00B8, 0x00B8 },
     { 0x02C2, 0x02C5 },
     { 0x02D2, 0x02DF },
-    { 0x02E5, 0x02ED },
+    { 0x02E5, 0x02EB },
+    { 0x02ED, 0x02ED },
     { 0x02EF, 0x02FF },
-    { 0x0374, 0x0375 },
+    { 0x0375, 0x0375 },
     { 0x0384, 0x0385 },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
@@ -38,6 +39,7 @@
     { 0x309B, 0x309C },
     { 0xA700, 0xA716 },
     { 0xA720, 0xA721 },
+    { 0xA789, 0xA78A },
     { 0xFF3E, 0xFF3E },
     { 0xFF40, 0xFF40 },
     { 0xFFE3, 0xFFE3 }
--- a/tests/unictype/test-categ_Sm.c
+++ b/tests/unictype/test-categ_Sm.c
@@ -26,6 +26,7 @@
     { 0x00D7, 0x00D7 },
     { 0x00F7, 0x00F7 },
     { 0x03F6, 0x03F6 },
+    { 0x0606, 0x0608 },
     { 0x2044, 0x2044 },
     { 0x2052, 0x2052 },
     { 0x207A, 0x207C },
@@ -53,12 +54,15 @@
     { 0x266F, 0x266F },
     { 0x27C0, 0x27C4 },
     { 0x27C7, 0x27CA },
+    { 0x27CC, 0x27CC },
     { 0x27D0, 0x27E5 },
     { 0x27F0, 0x27FF },
     { 0x2900, 0x2982 },
     { 0x2999, 0x29D7 },
     { 0x29DC, 0x29FB },
     { 0x29FE, 0x2AFF },
+    { 0x2B30, 0x2B44 },
+    { 0x2B47, 0x2B4C },
     { 0xFB29, 0xFB29 },
     { 0xFE62, 0xFE62 },
     { 0xFE64, 0xFE66 },
--- a/tests/unictype/test-categ_So.c
+++ b/tests/unictype/test-categ_So.c
@@ -31,7 +31,9 @@
     { 0x0B70, 0x0B70 },
     { 0x0BF3, 0x0BF8 },
     { 0x0BFA, 0x0BFA },
+    { 0x0C7F, 0x0C7F },
     { 0x0CF1, 0x0CF2 },
+    { 0x0D79, 0x0D79 },
     { 0x0F01, 0x0F03 },
     { 0x0F13, 0x0F17 },
     { 0x0F1A, 0x0F1F },
@@ -40,7 +42,8 @@
     { 0x0F38, 0x0F38 },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
-    { 0x0FCF, 0x0FCF },
+    { 0x0FCE, 0x0FCF },
+    { 0x109E, 0x109F },
     { 0x1360, 0x1360 },
     { 0x1390, 0x1399 },
     { 0x1940, 0x1940 },
@@ -60,6 +63,7 @@
     { 0x213A, 0x213B },
     { 0x214A, 0x214A },
     { 0x214C, 0x214D },
+    { 0x214F, 0x214F },
     { 0x2195, 0x2199 },
     { 0x219C, 0x219F },
     { 0x21A1, 0x21A2 },
@@ -83,8 +87,9 @@
     { 0x25B8, 0x25C0 },
     { 0x25C2, 0x25F7 },
     { 0x2600, 0x266E },
-    { 0x2670, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x2670, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -98,8 +103,9 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x2800, 0x28FF },
-    { 0x2B00, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x2B00, 0x2B2F },
+    { 0x2B45, 0x2B46 },
+    { 0x2B50, 0x2B54 },
     { 0x2CE5, 0x2CEA },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
@@ -112,7 +118,7 @@
     { 0x303E, 0x303F },
     { 0x3190, 0x3191 },
     { 0x3196, 0x319F },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
     { 0x322A, 0x3243 },
     { 0x3250, 0x3250 },
@@ -131,16 +137,20 @@
     { 0x10102, 0x10102 },
     { 0x10137, 0x1013F },
     { 0x10179, 0x10189 },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FC },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D164 },
+    { 0x1D129, 0x1D164 },
     { 0x1D16A, 0x1D16C },
     { 0x1D183, 0x1D184 },
     { 0x1D18C, 0x1D1A9 },
     { 0x1D1AE, 0x1D1DD },
     { 0x1D200, 0x1D241 },
     { 0x1D245, 0x1D245 },
-    { 0x1D300, 0x1D356 }
+    { 0x1D300, 0x1D356 },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_So)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-ctype_alnum.c
+++ b/tests/unictype/test-ctype_alnum.c
@@ -28,24 +28,25 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
     { 0x0345, 0x0345 },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x0660, 0x0669 },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
@@ -55,8 +56,7 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07F5 },
@@ -66,6 +66,7 @@
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
     { 0x0966, 0x096F },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -120,12 +121,15 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BE6, 0x0BEF },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C66, 0x0C6F },
     { 0x0C85, 0x0C8C },
@@ -141,8 +145,10 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
     { 0x0D66, 0x0D6F },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -174,13 +180,18 @@
     { 0x0F00, 0x0F00 },
     { 0x0F20, 0x0F29 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x1040, 0x1049 },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x1049 },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
+    { 0x1090, 0x1099 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -223,6 +234,7 @@
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
@@ -233,10 +245,13 @@
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B50, 0x1B59 },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C23 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C4D, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -270,12 +285,12 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x249C, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -289,6 +304,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3007 },
     { 0x3021, 0x3029 },
     { 0x3031, 0x3035 },
@@ -297,19 +313,34 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
+    { 0xAA50, 0xAA59 },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -346,6 +377,8 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -361,6 +394,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-ctype_alpha.c
+++ b/tests/unictype/test-ctype_alpha.c
@@ -27,24 +27,25 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
     { 0x0345, 0x0345 },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x0660, 0x0669 },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
@@ -54,8 +55,7 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07F5 },
@@ -65,6 +65,7 @@
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
     { 0x0966, 0x096F },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -119,12 +120,15 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BE6, 0x0BEF },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C66, 0x0C6F },
     { 0x0C85, 0x0C8C },
@@ -140,8 +144,10 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
     { 0x0D66, 0x0D6F },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -173,13 +179,18 @@
     { 0x0F00, 0x0F00 },
     { 0x0F20, 0x0F29 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x1040, 0x1049 },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x1049 },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
+    { 0x1090, 0x1099 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -222,6 +233,7 @@
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
@@ -232,10 +244,13 @@
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B50, 0x1B59 },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C23 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C4D, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -269,12 +284,12 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x249C, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -288,6 +303,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3007 },
     { 0x3021, 0x3029 },
     { 0x3031, 0x3035 },
@@ -296,19 +312,34 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
+    { 0xAA50, 0xAA59 },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -345,6 +376,8 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -360,6 +393,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-ctype_graph.c
+++ b/tests/unictype/test-ctype_graph.c
@@ -18,15 +18,12 @@
 #include "test-predicate-part1.h"
 
     { 0x0021, 0x007E },
-    { 0x00A0, 0x036F },
-    { 0x0374, 0x0375 },
+    { 0x00A0, 0x0377 },
     { 0x037A, 0x037E },
     { 0x0384, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x0486 },
-    { 0x0488, 0x0513 },
+    { 0x03A3, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
@@ -35,20 +32,17 @@
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F4 },
     { 0x0600, 0x0603 },
-    { 0x060B, 0x0615 },
-    { 0x061B, 0x061B },
+    { 0x0606, 0x061B },
     { 0x061E, 0x061F },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x065E },
+    { 0x0621, 0x065E },
     { 0x0660, 0x070D },
     { 0x070F, 0x074A },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07B1 },
+    { 0x074D, 0x07B1 },
     { 0x07C0, 0x07FA },
     { 0x0901, 0x0939 },
     { 0x093C, 0x094D },
     { 0x0950, 0x0954 },
-    { 0x0958, 0x0970 },
+    { 0x0958, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
@@ -76,9 +70,10 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A59, 0x0A5C },
     { 0x0A5E, 0x0A5E },
-    { 0x0A66, 0x0A74 },
+    { 0x0A66, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0A85, 0x0A8D },
     { 0x0A8F, 0x0A91 },
@@ -100,12 +95,12 @@
     { 0x0B2A, 0x0B30 },
     { 0x0B32, 0x0B33 },
     { 0x0B35, 0x0B39 },
-    { 0x0B3C, 0x0B43 },
+    { 0x0B3C, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
-    { 0x0B5F, 0x0B61 },
+    { 0x0B5F, 0x0B63 },
     { 0x0B66, 0x0B71 },
     { 0x0B82, 0x0B83 },
     { 0x0B85, 0x0B8A },
@@ -120,6 +115,7 @@
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCD },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BD7, 0x0BD7 },
     { 0x0BE6, 0x0BFA },
     { 0x0C01, 0x0C03 },
@@ -128,12 +124,14 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
-    { 0x0C3E, 0x0C44 },
+    { 0x0C3D, 0x0C44 },
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
-    { 0x0C60, 0x0C61 },
+    { 0x0C58, 0x0C59 },
+    { 0x0C60, 0x0C63 },
     { 0x0C66, 0x0C6F },
+    { 0x0C78, 0x0C7F },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -153,12 +151,13 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
-    { 0x0D60, 0x0D61 },
-    { 0x0D66, 0x0D6F },
+    { 0x0D60, 0x0D63 },
+    { 0x0D66, 0x0D75 },
+    { 0x0D79, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -191,19 +190,14 @@
     { 0x0ED0, 0x0ED9 },
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F8B },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCF, 0x0FD1 },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
-    { 0x1040, 0x1059 },
-    { 0x10A0, 0x10C5 },
+    { 0x0FCE, 0x0FD4 },
+    { 0x1000, 0x1099 },
+    { 0x109E, 0x10C5 },
     { 0x10D0, 0x10FC },
     { 0x1100, 0x1159 },
     { 0x115F, 0x11A2 },
@@ -243,7 +237,7 @@
     { 0x1800, 0x180D },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
-    { 0x1880, 0x18A9 },
+    { 0x1880, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
@@ -257,10 +251,13 @@
     { 0x1A1E, 0x1A1F },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B7C },
-    { 0x1D00, 0x1DCA },
-    { 0x1DFE, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1B80, 0x1BAA },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C37 },
+    { 0x1C3B, 0x1C49 },
+    { 0x1C4D, 0x1C7F },
+    { 0x1D00, 0x1DE6 },
+    { 0x1DFE, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -279,19 +276,20 @@
     { 0x2007, 0x2007 },
     { 0x200B, 0x2027 },
     { 0x202A, 0x205E },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x2071 },
     { 0x2074, 0x208E },
     { 0x2090, 0x2094 },
     { 0x20A0, 0x20B5 },
-    { 0x20D0, 0x20EF },
-    { 0x2100, 0x214E },
-    { 0x2153, 0x2184 },
+    { 0x20D0, 0x20F0 },
+    { 0x2100, 0x214F },
+    { 0x2153, 0x2188 },
     { 0x2190, 0x23E7 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x2460, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -304,13 +302,13 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CEA },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -324,8 +322,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2DE0, 0x2E30 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
@@ -333,21 +330,32 @@
     { 0x3001, 0x303F },
     { 0x3041, 0x3096 },
     { 0x3099, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x3190, 0x31B7 },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
     { 0x3220, 0x3243 },
     { 0x3250, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FBB },
+    { 0x4DC0, 0x9FC3 },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA700, 0xA71A },
-    { 0xA720, 0xA721 },
-    { 0xA800, 0xA82B },
+    { 0xA500, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA673 },
+    { 0xA67C, 0xA697 },
+    { 0xA700, 0xA78C },
+    { 0xA7FB, 0xA82B },
     { 0xA840, 0xA877 },
+    { 0xA880, 0xA8C4 },
+    { 0xA8CE, 0xA8D9 },
+    { 0xA900, 0xA953 },
+    { 0xA95F, 0xA95F },
+    { 0xAA00, 0xAA36 },
+    { 0xAA40, 0xAA4D },
+    { 0xAA50, 0xAA59 },
+    { 0xAA5C, 0xAA5F },
     { 0xAC00, 0xD7A3 },
     { 0xE000, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -365,7 +373,7 @@
     { 0xFD92, 0xFDC7 },
     { 0xFDF0, 0xFDFD },
     { 0xFE00, 0xFE19 },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFE30, 0xFE52 },
     { 0xFE54, 0xFE66 },
     { 0xFE68, 0xFE6B },
@@ -390,6 +398,10 @@
     { 0x10100, 0x10102 },
     { 0x10107, 0x10133 },
     { 0x10137, 0x1018A },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FD },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10320, 0x10323 },
     { 0x10330, 0x1034A },
@@ -405,7 +417,8 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10919 },
-    { 0x1091F, 0x1091F },
+    { 0x1091F, 0x10939 },
+    { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A13 },
@@ -419,7 +432,7 @@
     { 0x12470, 0x12473 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D1DD },
+    { 0x1D129, 0x1D1DD },
     { 0x1D200, 0x1D245 },
     { 0x1D300, 0x1D356 },
     { 0x1D360, 0x1D371 },
@@ -444,6 +457,8 @@
     { 0x1D552, 0x1D6A5 },
     { 0x1D6A8, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 },
     { 0x20000, 0x2A6D6 },
     { 0x2F800, 0x2FA1D },
     { 0xE0001, 0xE0001 },
--- a/tests/unictype/test-ctype_lower.c
+++ b/tests/unictype/test-ctype_lower.c
@@ -159,7 +159,7 @@
     { 0x0249, 0x0249 },
     { 0x024B, 0x024B },
     { 0x024D, 0x024D },
-    { 0x024F, 0x024F },
+    { 0x024F, 0x0251 },
     { 0x0253, 0x0254 },
     { 0x0256, 0x0257 },
     { 0x0259, 0x0259 },
@@ -169,7 +169,7 @@
     { 0x0268, 0x0269 },
     { 0x026B, 0x026B },
     { 0x026F, 0x026F },
-    { 0x0272, 0x0272 },
+    { 0x0271, 0x0272 },
     { 0x0275, 0x0275 },
     { 0x027D, 0x027D },
     { 0x0280, 0x0280 },
@@ -177,11 +177,14 @@
     { 0x0288, 0x028C },
     { 0x0292, 0x0292 },
     { 0x0345, 0x0345 },
+    { 0x0371, 0x0371 },
+    { 0x0373, 0x0373 },
+    { 0x0377, 0x0377 },
     { 0x037B, 0x037D },
     { 0x03AC, 0x03AF },
     { 0x03B1, 0x03CE },
     { 0x03D0, 0x03D1 },
-    { 0x03D5, 0x03D6 },
+    { 0x03D5, 0x03D7 },
     { 0x03D9, 0x03D9 },
     { 0x03DB, 0x03DB },
     { 0x03DD, 0x03DD },
@@ -283,7 +286,16 @@
     { 0x050F, 0x050F },
     { 0x0511, 0x0511 },
     { 0x0513, 0x0513 },
+    { 0x0515, 0x0515 },
+    { 0x0517, 0x0517 },
+    { 0x0519, 0x0519 },
+    { 0x051B, 0x051B },
+    { 0x051D, 0x051D },
+    { 0x051F, 0x051F },
+    { 0x0521, 0x0521 },
+    { 0x0523, 0x0523 },
     { 0x0561, 0x0586 },
+    { 0x1D79, 0x1D79 },
     { 0x1D7D, 0x1D7D },
     { 0x1E01, 0x1E01 },
     { 0x1E03, 0x1E03 },
@@ -406,7 +418,9 @@
     { 0x1EF5, 0x1EF5 },
     { 0x1EF7, 0x1EF7 },
     { 0x1EF9, 0x1EF9 },
-    { 0x1F00, 0x1F07 },
+    { 0x1EFB, 0x1EFB },
+    { 0x1EFD, 0x1EFD },
+    { 0x1EFF, 0x1F07 },
     { 0x1F10, 0x1F15 },
     { 0x1F20, 0x1F27 },
     { 0x1F30, 0x1F37 },
@@ -438,6 +452,7 @@
     { 0x2C68, 0x2C68 },
     { 0x2C6A, 0x2C6A },
     { 0x2C6C, 0x2C6C },
+    { 0x2C73, 0x2C73 },
     { 0x2C76, 0x2C76 },
     { 0x2C81, 0x2C81 },
     { 0x2C83, 0x2C83 },
@@ -490,6 +505,86 @@
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE3 },
     { 0x2D00, 0x2D25 },
+    { 0xA641, 0xA641 },
+    { 0xA643, 0xA643 },
+    { 0xA645, 0xA645 },
+    { 0xA647, 0xA647 },
+    { 0xA649, 0xA649 },
+    { 0xA64B, 0xA64B },
+    { 0xA64D, 0xA64D },
+    { 0xA64F, 0xA64F },
+    { 0xA651, 0xA651 },
+    { 0xA653, 0xA653 },
+    { 0xA655, 0xA655 },
+    { 0xA657, 0xA657 },
+    { 0xA659, 0xA659 },
+    { 0xA65B, 0xA65B },
+    { 0xA65D, 0xA65D },
+    { 0xA65F, 0xA65F },
+    { 0xA663, 0xA663 },
+    { 0xA665, 0xA665 },
+    { 0xA667, 0xA667 },
+    { 0xA669, 0xA669 },
+    { 0xA66B, 0xA66B },
+    { 0xA66D, 0xA66D },
+    { 0xA681, 0xA681 },
+    { 0xA683, 0xA683 },
+    { 0xA685, 0xA685 },
+    { 0xA687, 0xA687 },
+    { 0xA689, 0xA689 },
+    { 0xA68B, 0xA68B },
+    { 0xA68D, 0xA68D },
+    { 0xA68F, 0xA68F },
+    { 0xA691, 0xA691 },
+    { 0xA693, 0xA693 },
+    { 0xA695, 0xA695 },
+    { 0xA697, 0xA697 },
+    { 0xA723, 0xA723 },
+    { 0xA725, 0xA725 },
+    { 0xA727, 0xA727 },
+    { 0xA729, 0xA729 },
+    { 0xA72B, 0xA72B },
+    { 0xA72D, 0xA72D },
+    { 0xA72F, 0xA72F },
+    { 0xA733, 0xA733 },
+    { 0xA735, 0xA735 },
+    { 0xA737, 0xA737 },
+    { 0xA739, 0xA739 },
+    { 0xA73B, 0xA73B },
+    { 0xA73D, 0xA73D },
+    { 0xA73F, 0xA73F },
+    { 0xA741, 0xA741 },
+    { 0xA743, 0xA743 },
+    { 0xA745, 0xA745 },
+    { 0xA747, 0xA747 },
+    { 0xA749, 0xA749 },
+    { 0xA74B, 0xA74B },
+    { 0xA74D, 0xA74D },
+    { 0xA74F, 0xA74F },
+    { 0xA751, 0xA751 },
+    { 0xA753, 0xA753 },
+    { 0xA755, 0xA755 },
+    { 0xA757, 0xA757 },
+    { 0xA759, 0xA759 },
+    { 0xA75B, 0xA75B },
+    { 0xA75D, 0xA75D },
+    { 0xA75F, 0xA75F },
+    { 0xA761, 0xA761 },
+    { 0xA763, 0xA763 },
+    { 0xA765, 0xA765 },
+    { 0xA767, 0xA767 },
+    { 0xA769, 0xA769 },
+    { 0xA76B, 0xA76B },
+    { 0xA76D, 0xA76D },
+    { 0xA76F, 0xA76F },
+    { 0xA77A, 0xA77A },
+    { 0xA77C, 0xA77C },
+    { 0xA77F, 0xA77F },
+    { 0xA781, 0xA781 },
+    { 0xA783, 0xA783 },
+    { 0xA785, 0xA785 },
+    { 0xA787, 0xA787 },
+    { 0xA78C, 0xA78C },
     { 0xFF41, 0xFF5A },
     { 0x10428, 0x1044F }
 
--- a/tests/unictype/test-ctype_print.c
+++ b/tests/unictype/test-ctype_print.c
@@ -18,15 +18,12 @@
 #include "test-predicate-part1.h"
 
     { 0x0020, 0x007E },
-    { 0x00A0, 0x036F },
-    { 0x0374, 0x0375 },
+    { 0x00A0, 0x0377 },
     { 0x037A, 0x037E },
     { 0x0384, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x0486 },
-    { 0x0488, 0x0513 },
+    { 0x03A3, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
@@ -35,20 +32,17 @@
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F4 },
     { 0x0600, 0x0603 },
-    { 0x060B, 0x0615 },
-    { 0x061B, 0x061B },
+    { 0x0606, 0x061B },
     { 0x061E, 0x061F },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x065E },
+    { 0x0621, 0x065E },
     { 0x0660, 0x070D },
     { 0x070F, 0x074A },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07B1 },
+    { 0x074D, 0x07B1 },
     { 0x07C0, 0x07FA },
     { 0x0901, 0x0939 },
     { 0x093C, 0x094D },
     { 0x0950, 0x0954 },
-    { 0x0958, 0x0970 },
+    { 0x0958, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
@@ -76,9 +70,10 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A59, 0x0A5C },
     { 0x0A5E, 0x0A5E },
-    { 0x0A66, 0x0A74 },
+    { 0x0A66, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0A85, 0x0A8D },
     { 0x0A8F, 0x0A91 },
@@ -100,12 +95,12 @@
     { 0x0B2A, 0x0B30 },
     { 0x0B32, 0x0B33 },
     { 0x0B35, 0x0B39 },
-    { 0x0B3C, 0x0B43 },
+    { 0x0B3C, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
-    { 0x0B5F, 0x0B61 },
+    { 0x0B5F, 0x0B63 },
     { 0x0B66, 0x0B71 },
     { 0x0B82, 0x0B83 },
     { 0x0B85, 0x0B8A },
@@ -120,6 +115,7 @@
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCD },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BD7, 0x0BD7 },
     { 0x0BE6, 0x0BFA },
     { 0x0C01, 0x0C03 },
@@ -128,12 +124,14 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
-    { 0x0C3E, 0x0C44 },
+    { 0x0C3D, 0x0C44 },
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
-    { 0x0C60, 0x0C61 },
+    { 0x0C58, 0x0C59 },
+    { 0x0C60, 0x0C63 },
     { 0x0C66, 0x0C6F },
+    { 0x0C78, 0x0C7F },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -153,12 +151,13 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
-    { 0x0D60, 0x0D61 },
-    { 0x0D66, 0x0D6F },
+    { 0x0D60, 0x0D63 },
+    { 0x0D66, 0x0D75 },
+    { 0x0D79, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -191,19 +190,14 @@
     { 0x0ED0, 0x0ED9 },
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F8B },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCF, 0x0FD1 },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
-    { 0x1040, 0x1059 },
-    { 0x10A0, 0x10C5 },
+    { 0x0FCE, 0x0FD4 },
+    { 0x1000, 0x1099 },
+    { 0x109E, 0x10C5 },
     { 0x10D0, 0x10FC },
     { 0x1100, 0x1159 },
     { 0x115F, 0x11A2 },
@@ -243,7 +237,7 @@
     { 0x1800, 0x180E },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
-    { 0x1880, 0x18A9 },
+    { 0x1880, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
@@ -257,10 +251,13 @@
     { 0x1A1E, 0x1A1F },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B7C },
-    { 0x1D00, 0x1DCA },
-    { 0x1DFE, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1B80, 0x1BAA },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C37 },
+    { 0x1C3B, 0x1C49 },
+    { 0x1C4D, 0x1C7F },
+    { 0x1D00, 0x1DE6 },
+    { 0x1DFE, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -277,19 +274,20 @@
     { 0x1FF2, 0x1FF4 },
     { 0x1FF6, 0x1FFE },
     { 0x2000, 0x2027 },
-    { 0x202A, 0x2063 },
+    { 0x202A, 0x2064 },
     { 0x206A, 0x2071 },
     { 0x2074, 0x208E },
     { 0x2090, 0x2094 },
     { 0x20A0, 0x20B5 },
-    { 0x20D0, 0x20EF },
-    { 0x2100, 0x214E },
-    { 0x2153, 0x2184 },
+    { 0x20D0, 0x20F0 },
+    { 0x2100, 0x214F },
+    { 0x2153, 0x2188 },
     { 0x2190, 0x23E7 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x2460, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -302,13 +300,13 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CEA },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -322,8 +320,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2DE0, 0x2E30 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
@@ -331,21 +328,32 @@
     { 0x3000, 0x303F },
     { 0x3041, 0x3096 },
     { 0x3099, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x3190, 0x31B7 },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
     { 0x3220, 0x3243 },
     { 0x3250, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FBB },
+    { 0x4DC0, 0x9FC3 },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA700, 0xA71A },
-    { 0xA720, 0xA721 },
-    { 0xA800, 0xA82B },
+    { 0xA500, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA673 },
+    { 0xA67C, 0xA697 },
+    { 0xA700, 0xA78C },
+    { 0xA7FB, 0xA82B },
     { 0xA840, 0xA877 },
+    { 0xA880, 0xA8C4 },
+    { 0xA8CE, 0xA8D9 },
+    { 0xA900, 0xA953 },
+    { 0xA95F, 0xA95F },
+    { 0xAA00, 0xAA36 },
+    { 0xAA40, 0xAA4D },
+    { 0xAA50, 0xAA59 },
+    { 0xAA5C, 0xAA5F },
     { 0xAC00, 0xD7A3 },
     { 0xE000, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -363,7 +371,7 @@
     { 0xFD92, 0xFDC7 },
     { 0xFDF0, 0xFDFD },
     { 0xFE00, 0xFE19 },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFE30, 0xFE52 },
     { 0xFE54, 0xFE66 },
     { 0xFE68, 0xFE6B },
@@ -388,6 +396,10 @@
     { 0x10100, 0x10102 },
     { 0x10107, 0x10133 },
     { 0x10137, 0x1018A },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FD },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10320, 0x10323 },
     { 0x10330, 0x1034A },
@@ -403,7 +415,8 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10919 },
-    { 0x1091F, 0x1091F },
+    { 0x1091F, 0x10939 },
+    { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A13 },
@@ -417,7 +430,7 @@
     { 0x12470, 0x12473 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D1DD },
+    { 0x1D129, 0x1D1DD },
     { 0x1D200, 0x1D245 },
     { 0x1D300, 0x1D356 },
     { 0x1D360, 0x1D371 },
@@ -442,6 +455,8 @@
     { 0x1D552, 0x1D6A5 },
     { 0x1D6A8, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 },
     { 0x20000, 0x2A6D6 },
     { 0x2F800, 0x2FA1D },
     { 0xE0001, 0xE0001 },
--- a/tests/unictype/test-ctype_punct.c
+++ b/tests/unictype/test-ctype_punct.c
@@ -29,23 +29,22 @@
     { 0x00F7, 0x00F7 },
     { 0x02C2, 0x02C5 },
     { 0x02D2, 0x02DF },
-    { 0x02E5, 0x02ED },
+    { 0x02E5, 0x02EB },
+    { 0x02ED, 0x02ED },
     { 0x02EF, 0x0344 },
     { 0x0346, 0x036F },
-    { 0x0374, 0x0375 },
+    { 0x0375, 0x0375 },
     { 0x037E, 0x037E },
     { 0x0384, 0x0385 },
     { 0x0387, 0x0387 },
     { 0x03F6, 0x03F6 },
-    { 0x0482, 0x0486 },
-    { 0x0488, 0x0489 },
+    { 0x0482, 0x0489 },
     { 0x055A, 0x055F },
     { 0x0589, 0x058A },
     { 0x0591, 0x05C7 },
     { 0x05F3, 0x05F4 },
     { 0x0600, 0x0603 },
-    { 0x060B, 0x0615 },
-    { 0x061B, 0x061B },
+    { 0x0606, 0x061B },
     { 0x061E, 0x061F },
     { 0x064B, 0x065E },
     { 0x066A, 0x066D },
@@ -80,7 +79,9 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0ABC, 0x0ABC },
     { 0x0ABE, 0x0AC5 },
@@ -90,10 +91,11 @@
     { 0x0AF1, 0x0AF1 },
     { 0x0B01, 0x0B03 },
     { 0x0B3C, 0x0B3C },
-    { 0x0B3E, 0x0B43 },
+    { 0x0B3E, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
+    { 0x0B62, 0x0B63 },
     { 0x0B70, 0x0B70 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BC2 },
@@ -106,6 +108,8 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
+    { 0x0C78, 0x0C7F },
     { 0x0C82, 0x0C83 },
     { 0x0CBC, 0x0CBC },
     { 0x0CBE, 0x0CC4 },
@@ -115,10 +119,13 @@
     { 0x0CE2, 0x0CE3 },
     { 0x0CF1, 0x0CF2 },
     { 0x0D02, 0x0D03 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3E, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
+    { 0x0D62, 0x0D63 },
+    { 0x0D70, 0x0D75 },
+    { 0x0D79, 0x0D79 },
     { 0x0D82, 0x0D83 },
     { 0x0DCA, 0x0DCA },
     { 0x0DCF, 0x0DD4 },
@@ -140,11 +147,17 @@
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCF, 0x0FD1 },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
+    { 0x0FCE, 0x0FD4 },
+    { 0x102B, 0x103E },
     { 0x104A, 0x104F },
     { 0x1056, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1062, 0x1064 },
+    { 0x1067, 0x106D },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x108D },
+    { 0x108F, 0x108F },
+    { 0x109E, 0x109F },
     { 0x10FB, 0x10FB },
     { 0x135F, 0x137C },
     { 0x1390, 0x1399 },
@@ -173,7 +186,12 @@
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B5A, 0x1B7C },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B82 },
+    { 0x1BA1, 0x1BAA },
+    { 0x1C24, 0x1C37 },
+    { 0x1C3B, 0x1C3F },
+    { 0x1C7E, 0x1C7F },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
@@ -184,12 +202,12 @@
     { 0x2007, 0x2007 },
     { 0x200B, 0x2027 },
     { 0x202A, 0x205E },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x2070 },
     { 0x2074, 0x207E },
     { 0x2080, 0x208E },
     { 0x20A0, 0x20B5 },
-    { 0x20D0, 0x20EF },
+    { 0x20D0, 0x20F0 },
     { 0x2100, 0x2101 },
     { 0x2103, 0x2106 },
     { 0x2108, 0x2109 },
@@ -202,13 +220,15 @@
     { 0x213A, 0x213B },
     { 0x2140, 0x2144 },
     { 0x214A, 0x214D },
+    { 0x214F, 0x214F },
     { 0x2153, 0x215F },
     { 0x2190, 0x23E7 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x2460, 0x249B },
-    { 0x24EA, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x24EA, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -221,13 +241,13 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2CE5, 0x2CEA },
     { 0x2CF9, 0x2CFF },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2DE0, 0x2E2E },
+    { 0x2E30, 0x2E30 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
@@ -241,27 +261,41 @@
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
     { 0x3190, 0x319F },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
     { 0x3220, 0x3243 },
     { 0x3250, 0x32FE },
     { 0x3300, 0x33FF },
     { 0x4DC0, 0x4DFF },
     { 0xA490, 0xA4C6 },
+    { 0xA60D, 0xA60F },
+    { 0xA66F, 0xA673 },
+    { 0xA67C, 0xA67E },
     { 0xA700, 0xA716 },
     { 0xA720, 0xA721 },
+    { 0xA789, 0xA78A },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA82B },
     { 0xA874, 0xA877 },
+    { 0xA880, 0xA881 },
+    { 0xA8B4, 0xA8C4 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA926, 0xA92F },
+    { 0xA947, 0xA953 },
+    { 0xA95F, 0xA95F },
+    { 0xAA29, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4D },
+    { 0xAA5C, 0xAA5F },
     { 0xE000, 0xF8FF },
     { 0xFB1E, 0xFB1E },
     { 0xFB29, 0xFB29 },
     { 0xFD3E, 0xFD3F },
     { 0xFDFC, 0xFDFD },
     { 0xFE00, 0xFE19 },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFE30, 0xFE52 },
     { 0xFE54, 0xFE66 },
     { 0xFE68, 0xFE6B },
@@ -277,11 +311,14 @@
     { 0x10107, 0x10133 },
     { 0x10137, 0x1013F },
     { 0x10175, 0x1018A },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FD },
     { 0x10320, 0x10323 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
     { 0x10916, 0x10919 },
     { 0x1091F, 0x1091F },
+    { 0x1093F, 0x1093F },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
@@ -291,7 +328,7 @@
     { 0x12470, 0x12473 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D1DD },
+    { 0x1D129, 0x1D1DD },
     { 0x1D200, 0x1D245 },
     { 0x1D300, 0x1D356 },
     { 0x1D360, 0x1D371 },
@@ -305,6 +342,8 @@
     { 0x1D789, 0x1D789 },
     { 0x1D7A9, 0x1D7A9 },
     { 0x1D7C3, 0x1D7C3 },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F },
     { 0xE0100, 0xE01EF },
--- a/tests/unictype/test-ctype_upper.c
+++ b/tests/unictype/test-ctype_upper.c
@@ -161,12 +161,16 @@
     { 0x024A, 0x024A },
     { 0x024C, 0x024C },
     { 0x024E, 0x024E },
+    { 0x0370, 0x0370 },
+    { 0x0372, 0x0372 },
+    { 0x0376, 0x0376 },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x038F },
     { 0x0391, 0x03A1 },
     { 0x03A3, 0x03AB },
+    { 0x03CF, 0x03CF },
     { 0x03D8, 0x03D8 },
     { 0x03DA, 0x03DA },
     { 0x03DC, 0x03DC },
@@ -268,6 +272,14 @@
     { 0x050E, 0x050E },
     { 0x0510, 0x0510 },
     { 0x0512, 0x0512 },
+    { 0x0514, 0x0514 },
+    { 0x0516, 0x0516 },
+    { 0x0518, 0x0518 },
+    { 0x051A, 0x051A },
+    { 0x051C, 0x051C },
+    { 0x051E, 0x051E },
+    { 0x0520, 0x0520 },
+    { 0x0522, 0x0522 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
@@ -345,6 +357,7 @@
     { 0x1E90, 0x1E90 },
     { 0x1E92, 0x1E92 },
     { 0x1E94, 0x1E94 },
+    { 0x1E9E, 0x1E9E },
     { 0x1EA0, 0x1EA0 },
     { 0x1EA2, 0x1EA2 },
     { 0x1EA4, 0x1EA4 },
@@ -390,6 +403,9 @@
     { 0x1EF4, 0x1EF4 },
     { 0x1EF6, 0x1EF6 },
     { 0x1EF8, 0x1EF8 },
+    { 0x1EFA, 0x1EFA },
+    { 0x1EFC, 0x1EFC },
+    { 0x1EFE, 0x1EFE },
     { 0x1F08, 0x1F0F },
     { 0x1F18, 0x1F1D },
     { 0x1F28, 0x1F2F },
@@ -420,6 +436,8 @@
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
+    { 0x2C6D, 0x2C6F },
+    { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
     { 0x2C80, 0x2C80 },
     { 0x2C82, 0x2C82 },
@@ -471,6 +489,86 @@
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0xA640, 0xA640 },
+    { 0xA642, 0xA642 },
+    { 0xA644, 0xA644 },
+    { 0xA646, 0xA646 },
+    { 0xA648, 0xA648 },
+    { 0xA64A, 0xA64A },
+    { 0xA64C, 0xA64C },
+    { 0xA64E, 0xA64E },
+    { 0xA650, 0xA650 },
+    { 0xA652, 0xA652 },
+    { 0xA654, 0xA654 },
+    { 0xA656, 0xA656 },
+    { 0xA658, 0xA658 },
+    { 0xA65A, 0xA65A },
+    { 0xA65C, 0xA65C },
+    { 0xA65E, 0xA65E },
+    { 0xA662, 0xA662 },
+    { 0xA664, 0xA664 },
+    { 0xA666, 0xA666 },
+    { 0xA668, 0xA668 },
+    { 0xA66A, 0xA66A },
+    { 0xA66C, 0xA66C },
+    { 0xA680, 0xA680 },
+    { 0xA682, 0xA682 },
+    { 0xA684, 0xA684 },
+    { 0xA686, 0xA686 },
+    { 0xA688, 0xA688 },
+    { 0xA68A, 0xA68A },
+    { 0xA68C, 0xA68C },
+    { 0xA68E, 0xA68E },
+    { 0xA690, 0xA690 },
+    { 0xA692, 0xA692 },
+    { 0xA694, 0xA694 },
+    { 0xA696, 0xA696 },
+    { 0xA722, 0xA722 },
+    { 0xA724, 0xA724 },
+    { 0xA726, 0xA726 },
+    { 0xA728, 0xA728 },
+    { 0xA72A, 0xA72A },
+    { 0xA72C, 0xA72C },
+    { 0xA72E, 0xA72E },
+    { 0xA732, 0xA732 },
+    { 0xA734, 0xA734 },
+    { 0xA736, 0xA736 },
+    { 0xA738, 0xA738 },
+    { 0xA73A, 0xA73A },
+    { 0xA73C, 0xA73C },
+    { 0xA73E, 0xA73E },
+    { 0xA740, 0xA740 },
+    { 0xA742, 0xA742 },
+    { 0xA744, 0xA744 },
+    { 0xA746, 0xA746 },
+    { 0xA748, 0xA748 },
+    { 0xA74A, 0xA74A },
+    { 0xA74C, 0xA74C },
+    { 0xA74E, 0xA74E },
+    { 0xA750, 0xA750 },
+    { 0xA752, 0xA752 },
+    { 0xA754, 0xA754 },
+    { 0xA756, 0xA756 },
+    { 0xA758, 0xA758 },
+    { 0xA75A, 0xA75A },
+    { 0xA75C, 0xA75C },
+    { 0xA75E, 0xA75E },
+    { 0xA760, 0xA760 },
+    { 0xA762, 0xA762 },
+    { 0xA764, 0xA764 },
+    { 0xA766, 0xA766 },
+    { 0xA768, 0xA768 },
+    { 0xA76A, 0xA76A },
+    { 0xA76C, 0xA76C },
+    { 0xA76E, 0xA76E },
+    { 0xA779, 0xA779 },
+    { 0xA77B, 0xA77B },
+    { 0xA77D, 0xA77E },
+    { 0xA780, 0xA780 },
+    { 0xA782, 0xA782 },
+    { 0xA784, 0xA784 },
+    { 0xA786, 0xA786 },
+    { 0xA78B, 0xA78B },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 }
 
--- a/tests/unictype/test-decdigit.h
+++ b/tests/unictype/test-decdigit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decimal digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
     { 0x0030, 0 },
     { 0x0031, 1 },
     { 0x0032, 2 },
@@ -171,6 +171,16 @@
     { 0x1047, 7 },
     { 0x1048, 8 },
     { 0x1049, 9 },
+    { 0x1090, 0 },
+    { 0x1091, 1 },
+    { 0x1092, 2 },
+    { 0x1093, 3 },
+    { 0x1094, 4 },
+    { 0x1095, 5 },
+    { 0x1096, 6 },
+    { 0x1097, 7 },
+    { 0x1098, 8 },
+    { 0x1099, 9 },
     { 0x17E0, 0 },
     { 0x17E1, 1 },
     { 0x17E2, 2 },
@@ -221,6 +231,76 @@
     { 0x1B57, 7 },
     { 0x1B58, 8 },
     { 0x1B59, 9 },
+    { 0x1BB0, 0 },
+    { 0x1BB1, 1 },
+    { 0x1BB2, 2 },
+    { 0x1BB3, 3 },
+    { 0x1BB4, 4 },
+    { 0x1BB5, 5 },
+    { 0x1BB6, 6 },
+    { 0x1BB7, 7 },
+    { 0x1BB8, 8 },
+    { 0x1BB9, 9 },
+    { 0x1C40, 0 },
+    { 0x1C41, 1 },
+    { 0x1C42, 2 },
+    { 0x1C43, 3 },
+    { 0x1C44, 4 },
+    { 0x1C45, 5 },
+    { 0x1C46, 6 },
+    { 0x1C47, 7 },
+    { 0x1C48, 8 },
+    { 0x1C49, 9 },
+    { 0x1C50, 0 },
+    { 0x1C51, 1 },
+    { 0x1C52, 2 },
+    { 0x1C53, 3 },
+    { 0x1C54, 4 },
+    { 0x1C55, 5 },
+    { 0x1C56, 6 },
+    { 0x1C57, 7 },
+    { 0x1C58, 8 },
+    { 0x1C59, 9 },
+    { 0xA620, 0 },
+    { 0xA621, 1 },
+    { 0xA622, 2 },
+    { 0xA623, 3 },
+    { 0xA624, 4 },
+    { 0xA625, 5 },
+    { 0xA626, 6 },
+    { 0xA627, 7 },
+    { 0xA628, 8 },
+    { 0xA629, 9 },
+    { 0xA8D0, 0 },
+    { 0xA8D1, 1 },
+    { 0xA8D2, 2 },
+    { 0xA8D3, 3 },
+    { 0xA8D4, 4 },
+    { 0xA8D5, 5 },
+    { 0xA8D6, 6 },
+    { 0xA8D7, 7 },
+    { 0xA8D8, 8 },
+    { 0xA8D9, 9 },
+    { 0xA900, 0 },
+    { 0xA901, 1 },
+    { 0xA902, 2 },
+    { 0xA903, 3 },
+    { 0xA904, 4 },
+    { 0xA905, 5 },
+    { 0xA906, 6 },
+    { 0xA907, 7 },
+    { 0xA908, 8 },
+    { 0xA909, 9 },
+    { 0xAA50, 0 },
+    { 0xAA51, 1 },
+    { 0xAA52, 2 },
+    { 0xAA53, 3 },
+    { 0xAA54, 4 },
+    { 0xAA55, 5 },
+    { 0xAA56, 6 },
+    { 0xAA57, 7 },
+    { 0xAA58, 8 },
+    { 0xAA59, 9 },
     { 0xFF10, 0 },
     { 0xFF11, 1 },
     { 0xFF12, 2 },
--- a/tests/unictype/test-digit.h
+++ b/tests/unictype/test-digit.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
     { 0x0030, 0 },
     { 0x0031, 1 },
     { 0x0032, 2 },
@@ -174,6 +174,16 @@
     { 0x1047, 7 },
     { 0x1048, 8 },
     { 0x1049, 9 },
+    { 0x1090, 0 },
+    { 0x1091, 1 },
+    { 0x1092, 2 },
+    { 0x1093, 3 },
+    { 0x1094, 4 },
+    { 0x1095, 5 },
+    { 0x1096, 6 },
+    { 0x1097, 7 },
+    { 0x1098, 8 },
+    { 0x1099, 9 },
     { 0x1369, 1 },
     { 0x136A, 2 },
     { 0x136B, 3 },
@@ -233,6 +243,36 @@
     { 0x1B57, 7 },
     { 0x1B58, 8 },
     { 0x1B59, 9 },
+    { 0x1BB0, 0 },
+    { 0x1BB1, 1 },
+    { 0x1BB2, 2 },
+    { 0x1BB3, 3 },
+    { 0x1BB4, 4 },
+    { 0x1BB5, 5 },
+    { 0x1BB6, 6 },
+    { 0x1BB7, 7 },
+    { 0x1BB8, 8 },
+    { 0x1BB9, 9 },
+    { 0x1C40, 0 },
+    { 0x1C41, 1 },
+    { 0x1C42, 2 },
+    { 0x1C43, 3 },
+    { 0x1C44, 4 },
+    { 0x1C45, 5 },
+    { 0x1C46, 6 },
+    { 0x1C47, 7 },
+    { 0x1C48, 8 },
+    { 0x1C49, 9 },
+    { 0x1C50, 0 },
+    { 0x1C51, 1 },
+    { 0x1C52, 2 },
+    { 0x1C53, 3 },
+    { 0x1C54, 4 },
+    { 0x1C55, 5 },
+    { 0x1C56, 6 },
+    { 0x1C57, 7 },
+    { 0x1C58, 8 },
+    { 0x1C59, 9 },
     { 0x2070, 0 },
     { 0x2074, 4 },
     { 0x2075, 5 },
@@ -315,6 +355,46 @@
     { 0x2790, 7 },
     { 0x2791, 8 },
     { 0x2792, 9 },
+    { 0xA620, 0 },
+    { 0xA621, 1 },
+    { 0xA622, 2 },
+    { 0xA623, 3 },
+    { 0xA624, 4 },
+    { 0xA625, 5 },
+    { 0xA626, 6 },
+    { 0xA627, 7 },
+    { 0xA628, 8 },
+    { 0xA629, 9 },
+    { 0xA8D0, 0 },
+    { 0xA8D1, 1 },
+    { 0xA8D2, 2 },
+    { 0xA8D3, 3 },
+    { 0xA8D4, 4 },
+    { 0xA8D5, 5 },
+    { 0xA8D6, 6 },
+    { 0xA8D7, 7 },
+    { 0xA8D8, 8 },
+    { 0xA8D9, 9 },
+    { 0xA900, 0 },
+    { 0xA901, 1 },
+    { 0xA902, 2 },
+    { 0xA903, 3 },
+    { 0xA904, 4 },
+    { 0xA905, 5 },
+    { 0xA906, 6 },
+    { 0xA907, 7 },
+    { 0xA908, 8 },
+    { 0xA909, 9 },
+    { 0xAA50, 0 },
+    { 0xAA51, 1 },
+    { 0xAA52, 2 },
+    { 0xAA53, 3 },
+    { 0xAA54, 4 },
+    { 0xAA55, 5 },
+    { 0xAA56, 6 },
+    { 0xAA57, 7 },
+    { 0xAA58, 8 },
+    { 0xAA59, 9 },
     { 0xFF10, 0 },
     { 0xFF11, 1 },
     { 0xFF12, 2 },
--- a/tests/unictype/test-numeric.h
+++ b/tests/unictype/test-numeric.h
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Numeric values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.0.0.  */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
     { 0x0030, 0, 1 },
     { 0x0031, 1, 1 },
     { 0x0032, 2, 1 },
@@ -125,6 +125,13 @@
     { 0x0C6D, 7, 1 },
     { 0x0C6E, 8, 1 },
     { 0x0C6F, 9, 1 },
+    { 0x0C78, 0, 1 },
+    { 0x0C79, 1, 1 },
+    { 0x0C7A, 2, 1 },
+    { 0x0C7B, 3, 1 },
+    { 0x0C7C, 1, 1 },
+    { 0x0C7D, 2, 1 },
+    { 0x0C7E, 3, 1 },
     { 0x0CE6, 0, 1 },
     { 0x0CE7, 1, 1 },
     { 0x0CE8, 2, 1 },
@@ -145,6 +152,12 @@
     { 0x0D6D, 7, 1 },
     { 0x0D6E, 8, 1 },
     { 0x0D6F, 9, 1 },
+    { 0x0D70, 10, 1 },
+    { 0x0D71, 100, 1 },
+    { 0x0D72, 1000, 1 },
+    { 0x0D73, 1, 4 },
+    { 0x0D74, 1, 2 },
+    { 0x0D75, 3, 4 },
     { 0x0E50, 0, 1 },
     { 0x0E51, 1, 1 },
     { 0x0E52, 2, 1 },
@@ -195,6 +208,16 @@
     { 0x1047, 7, 1 },
     { 0x1048, 8, 1 },
     { 0x1049, 9, 1 },
+    { 0x1090, 0, 1 },
+    { 0x1091, 1, 1 },
+    { 0x1092, 2, 1 },
+    { 0x1093, 3, 1 },
+    { 0x1094, 4, 1 },
+    { 0x1095, 5, 1 },
+    { 0x1096, 6, 1 },
+    { 0x1097, 7, 1 },
+    { 0x1098, 8, 1 },
+    { 0x1099, 9, 1 },
     { 0x1369, 1, 1 },
     { 0x136A, 2, 1 },
     { 0x136B, 3, 1 },
@@ -278,6 +301,36 @@
     { 0x1B57, 7, 1 },
     { 0x1B58, 8, 1 },
     { 0x1B59, 9, 1 },
+    { 0x1BB0, 0, 1 },
+    { 0x1BB1, 1, 1 },
+    { 0x1BB2, 2, 1 },
+    { 0x1BB3, 3, 1 },
+    { 0x1BB4, 4, 1 },
+    { 0x1BB5, 5, 1 },
+    { 0x1BB6, 6, 1 },
+    { 0x1BB7, 7, 1 },
+    { 0x1BB8, 8, 1 },
+    { 0x1BB9, 9, 1 },
+    { 0x1C40, 0, 1 },
+    { 0x1C41, 1, 1 },
+    { 0x1C42, 2, 1 },
+    { 0x1C43, 3, 1 },
+    { 0x1C44, 4, 1 },
+    { 0x1C45, 5, 1 },
+    { 0x1C46, 6, 1 },
+    { 0x1C47, 7, 1 },
+    { 0x1C48, 8, 1 },
+    { 0x1C49, 9, 1 },
+    { 0x1C50, 0, 1 },
+    { 0x1C51, 1, 1 },
+    { 0x1C52, 2, 1 },
+    { 0x1C53, 3, 1 },
+    { 0x1C54, 4, 1 },
+    { 0x1C55, 5, 1 },
+    { 0x1C56, 6, 1 },
+    { 0x1C57, 7, 1 },
+    { 0x1C58, 8, 1 },
+    { 0x1C59, 9, 1 },
     { 0x2070, 0, 1 },
     { 0x2074, 4, 1 },
     { 0x2075, 5, 1 },
@@ -343,6 +396,10 @@
     { 0x2180, 1000, 1 },
     { 0x2181, 5000, 1 },
     { 0x2182, 10000, 1 },
+    { 0x2185, 6, 1 },
+    { 0x2186, 50, 1 },
+    { 0x2187, 50000, 1 },
+    { 0x2188, 100000, 1 },
     { 0x2460, 1, 1 },
     { 0x2461, 2, 1 },
     { 0x2462, 3, 1 },
@@ -523,6 +580,53 @@
     { 0x32BD, 48, 1 },
     { 0x32BE, 49, 1 },
     { 0x32BF, 50, 1 },
+    { 0xA620, 0, 1 },
+    { 0xA621, 1, 1 },
+    { 0xA622, 2, 1 },
+    { 0xA623, 3, 1 },
+    { 0xA624, 4, 1 },
+    { 0xA625, 5, 1 },
+    { 0xA626, 6, 1 },
+    { 0xA627, 7, 1 },
+    { 0xA628, 8, 1 },
+    { 0xA629, 9, 1 },
+    { 0xA8D0, 0, 1 },
+    { 0xA8D1, 1, 1 },
+    { 0xA8D2, 2, 1 },
+    { 0xA8D3, 3, 1 },
+    { 0xA8D4, 4, 1 },
+    { 0xA8D5, 5, 1 },
+    { 0xA8D6, 6, 1 },
+    { 0xA8D7, 7, 1 },
+    { 0xA8D8, 8, 1 },
+    { 0xA8D9, 9, 1 },
+    { 0xA900, 0, 1 },
+    { 0xA901, 1, 1 },
+    { 0xA902, 2, 1 },
+    { 0xA903, 3, 1 },
+    { 0xA904, 4, 1 },
+    { 0xA905, 5, 1 },
+    { 0xA906, 6, 1 },
+    { 0xA907, 7, 1 },
+    { 0xA908, 8, 1 },
+    { 0xA909, 9, 1 },
+    { 0xAA50, 0, 1 },
+    { 0xAA51, 1, 1 },
+    { 0xAA52, 2, 1 },
+    { 0xAA53, 3, 1 },
+    { 0xAA54, 4, 1 },
+    { 0xAA55, 5, 1 },
+    { 0xAA56, 6, 1 },
+    { 0xAA57, 7, 1 },
+    { 0xAA58, 8, 1 },
+    { 0xAA59, 9, 1 },
+    { 0xF96B, 3, 1 },
+    { 0xF973, 10, 1 },
+    { 0xF978, 2, 1 },
+    { 0xF9B2, 0, 1 },
+    { 0xF9D1, 6, 1 },
+    { 0xF9D3, 6, 1 },
+    { 0xF9FD, 10, 1 },
     { 0xFF10, 0, 1 },
     { 0xFF11, 1, 1 },
     { 0xFF12, 2, 1 },
@@ -831,4 +935,5 @@
     { 0x1D7FC, 6, 1 },
     { 0x1D7FD, 7, 1 },
     { 0x1D7FE, 8, 1 },
-    { 0x1D7FF, 9, 1 }
+    { 0x1D7FF, 9, 1 },
+    { 0x2F890, 9, 1 }
--- a/tests/unictype/test-pr_alphabetic.c
+++ b/tests/unictype/test-pr_alphabetic.c
@@ -27,17 +27,19 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
     { 0x0345, 0x0345 },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -48,9 +50,8 @@
     { 0x05C7, 0x05C7 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0610, 0x0615 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x0657 },
+    { 0x0610, 0x061A },
+    { 0x0621, 0x0657 },
     { 0x0659, 0x065E },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
@@ -59,8 +60,7 @@
     { 0x06FA, 0x06FC },
     { 0x06FF, 0x06FF },
     { 0x0710, 0x073F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07B1 },
+    { 0x074D, 0x07B1 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
@@ -68,6 +68,7 @@
     { 0x093D, 0x094C },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0963 },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
@@ -95,9 +96,10 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4C },
+    { 0x0A51, 0x0A51 },
     { 0x0A59, 0x0A5C },
     { 0x0A5E, 0x0A5E },
-    { 0x0A70, 0x0A74 },
+    { 0x0A70, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0A85, 0x0A8D },
     { 0x0A8F, 0x0A91 },
@@ -117,12 +119,12 @@
     { 0x0B2A, 0x0B30 },
     { 0x0B32, 0x0B33 },
     { 0x0B35, 0x0B39 },
-    { 0x0B3D, 0x0B43 },
+    { 0x0B3D, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4C },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
-    { 0x0B5F, 0x0B61 },
+    { 0x0B5F, 0x0B63 },
     { 0x0B71, 0x0B71 },
     { 0x0B82, 0x0B83 },
     { 0x0B85, 0x0B8A },
@@ -137,6 +139,7 @@
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCC },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BD7, 0x0BD7 },
     { 0x0C01, 0x0C03 },
     { 0x0C05, 0x0C0C },
@@ -144,11 +147,12 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
-    { 0x0C3E, 0x0C44 },
+    { 0x0C3D, 0x0C44 },
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4C },
     { 0x0C55, 0x0C56 },
-    { 0x0C60, 0x0C61 },
+    { 0x0C58, 0x0C59 },
+    { 0x0C60, 0x0C63 },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -166,11 +170,12 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4C },
     { 0x0D57, 0x0D57 },
-    { 0x0D60, 0x0D61 },
+    { 0x0D60, 0x0D63 },
+    { 0x0D7A, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -203,18 +208,18 @@
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F81 },
     { 0x0F88, 0x0F8B },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1036 },
+    { 0x1000, 0x1036 },
     { 0x1038, 0x1038 },
-    { 0x1050, 0x1059 },
+    { 0x103B, 0x103F },
+    { 0x1050, 0x1062 },
+    { 0x1065, 0x1068 },
+    { 0x106E, 0x1086 },
+    { 0x108E, 0x108E },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -257,7 +262,7 @@
     { 0x17D7, 0x17D7 },
     { 0x17DC, 0x17DC },
     { 0x1820, 0x1877 },
-    { 0x1880, 0x18A9 },
+    { 0x1880, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x1938 },
@@ -269,10 +274,13 @@
     { 0x1B00, 0x1B33 },
     { 0x1B35, 0x1B43 },
     { 0x1B45, 0x1B4B },
+    { 0x1B80, 0x1BA9 },
+    { 0x1BAE, 0x1BAF },
+    { 0x1C00, 0x1C35 },
+    { 0x1C4D, 0x1C4F },
+    { 0x1C5A, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -307,12 +315,12 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x24B6, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -326,6 +334,8 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2DE0, 0x2DFF },
+    { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3007 },
     { 0x3021, 0x3029 },
     { 0x3031, 0x3035 },
@@ -334,19 +344,32 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA61F },
+    { 0xA62A, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA827 },
     { 0xA840, 0xA873 },
+    { 0xA880, 0xA8C3 },
+    { 0xA90A, 0xA92A },
+    { 0xA930, 0xA952 },
+    { 0xAA00, 0xAA36 },
+    { 0xAA40, 0xAA4D },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -381,6 +404,8 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -395,6 +420,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A13 },
--- a/tests/unictype/test-pr_bidi_arabic_digit.c
+++ b/tests/unictype/test-pr_bidi_arabic_digit.c
@@ -17,8 +17,10 @@
 
 #include "test-predicate-part1.h"
 
+    { 0x0600, 0x0603 },
     { 0x0660, 0x0669 },
-    { 0x066B, 0x066C }
+    { 0x066B, 0x066C },
+    { 0x06DD, 0x06DD }
 
 #define PREDICATE(c) uc_is_property_bidi_arabic_digit (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_bidi_arabic_right_to_left.c
+++ b/tests/unictype/test-pr_bidi_arabic_right_to_left.c
@@ -17,13 +17,14 @@
 
 #include "test-predicate-part1.h"
 
-    { 0x0600, 0x060B },
+    { 0x0604, 0x0605 },
+    { 0x0608, 0x0608 },
+    { 0x060B, 0x060B },
     { 0x060D, 0x060D },
-    { 0x0616, 0x064A },
+    { 0x061B, 0x064A },
     { 0x065F, 0x065F },
     { 0x066D, 0x066F },
     { 0x0671, 0x06D5 },
-    { 0x06DD, 0x06DD },
     { 0x06E5, 0x06E6 },
     { 0x06EE, 0x06EF },
     { 0x06FA, 0x070E },
@@ -31,13 +32,13 @@
     { 0x0712, 0x072F },
     { 0x074B, 0x07A5 },
     { 0x07B1, 0x07BF },
-    { 0x2064, 0x2069 },
+    { 0x2065, 0x2069 },
     { 0xFB50, 0xFD3D },
     { 0xFD40, 0xFDCF },
     { 0xFDF0, 0xFDFC },
     { 0xFDFE, 0xFDFF },
     { 0xFE1A, 0xFE1F },
-    { 0xFE24, 0xFE2F },
+    { 0xFE27, 0xFE2F },
     { 0xFE53, 0xFE53 },
     { 0xFE67, 0xFE67 },
     { 0xFE6C, 0xFEFE }
--- a/tests/unictype/test-pr_bidi_boundary_neutral.c
+++ b/tests/unictype/test-pr_bidi_boundary_neutral.c
@@ -24,7 +24,7 @@
     { 0x00AD, 0x00AD },
     { 0x070F, 0x070F },
     { 0x200B, 0x200D },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
     { 0xFDD0, 0xFDEF },
     { 0xFEFF, 0xFEFF },
--- a/tests/unictype/test-pr_bidi_eur_num_terminator.c
+++ b/tests/unictype/test-pr_bidi_eur_num_terminator.c
@@ -20,6 +20,7 @@
     { 0x0023, 0x0025 },
     { 0x00A2, 0x00A5 },
     { 0x00B0, 0x00B1 },
+    { 0x0609, 0x060A },
     { 0x066A, 0x066A },
     { 0x09F2, 0x09F3 },
     { 0x0AF1, 0x0AF1 },
--- a/tests/unictype/test-pr_bidi_left_to_right.c
+++ b/tests/unictype/test-pr_bidi_left_to_right.c
@@ -35,7 +35,6 @@
     { 0x0386, 0x0386 },
     { 0x0388, 0x03F5 },
     { 0x03F7, 0x0482 },
-    { 0x0487, 0x0487 },
     { 0x048A, 0x0589 },
     { 0x058B, 0x058F },
     { 0x0900, 0x0900 },
@@ -55,8 +54,10 @@
     { 0x0A3D, 0x0A40 },
     { 0x0A43, 0x0A46 },
     { 0x0A49, 0x0A4A },
-    { 0x0A4E, 0x0A6F },
-    { 0x0A72, 0x0A80 },
+    { 0x0A4E, 0x0A50 },
+    { 0x0A52, 0x0A6F },
+    { 0x0A72, 0x0A74 },
+    { 0x0A76, 0x0A80 },
     { 0x0A83, 0x0ABB },
     { 0x0ABD, 0x0AC0 },
     { 0x0AC6, 0x0AC6 },
@@ -67,9 +68,10 @@
     { 0x0B02, 0x0B3B },
     { 0x0B3D, 0x0B3E },
     { 0x0B40, 0x0B40 },
-    { 0x0B44, 0x0B4C },
+    { 0x0B45, 0x0B4C },
     { 0x0B4E, 0x0B55 },
-    { 0x0B57, 0x0B81 },
+    { 0x0B57, 0x0B61 },
+    { 0x0B64, 0x0B81 },
     { 0x0B83, 0x0BBF },
     { 0x0BC1, 0x0BCC },
     { 0x0BCE, 0x0BF2 },
@@ -77,13 +79,16 @@
     { 0x0C41, 0x0C45 },
     { 0x0C49, 0x0C49 },
     { 0x0C4E, 0x0C54 },
-    { 0x0C57, 0x0CBB },
+    { 0x0C57, 0x0C61 },
+    { 0x0C64, 0x0C77 },
+    { 0x0C7F, 0x0CBB },
     { 0x0CBD, 0x0CCB },
     { 0x0CCE, 0x0CE1 },
     { 0x0CE4, 0x0CF0 },
     { 0x0CF3, 0x0D40 },
-    { 0x0D44, 0x0D4C },
-    { 0x0D4E, 0x0DC9 },
+    { 0x0D45, 0x0D4C },
+    { 0x0D4E, 0x0D61 },
+    { 0x0D64, 0x0DC9 },
     { 0x0DCB, 0x0DD1 },
     { 0x0DD5, 0x0DD5 },
     { 0x0DD7, 0x0E30 },
@@ -106,10 +111,15 @@
     { 0x0FBD, 0x0FC5 },
     { 0x0FC7, 0x102C },
     { 0x1031, 0x1031 },
-    { 0x1033, 0x1035 },
     { 0x1038, 0x1038 },
-    { 0x103A, 0x1057 },
-    { 0x105A, 0x135E },
+    { 0x103B, 0x103C },
+    { 0x103F, 0x1057 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x1083, 0x1084 },
+    { 0x1087, 0x108C },
+    { 0x108E, 0x135E },
     { 0x1360, 0x138F },
     { 0x139A, 0x167F },
     { 0x1681, 0x169A },
@@ -127,7 +137,7 @@
     { 0x180F, 0x18A8 },
     { 0x18AA, 0x191F },
     { 0x1923, 0x1926 },
-    { 0x192C, 0x1931 },
+    { 0x1929, 0x1931 },
     { 0x1933, 0x1938 },
     { 0x193C, 0x193F },
     { 0x1941, 0x1943 },
@@ -139,8 +149,13 @@
     { 0x1B3B, 0x1B3B },
     { 0x1B3D, 0x1B41 },
     { 0x1B43, 0x1B6A },
-    { 0x1B74, 0x1DBF },
-    { 0x1DCB, 0x1DFD },
+    { 0x1B74, 0x1B7F },
+    { 0x1B82, 0x1BA1 },
+    { 0x1BA6, 0x1BA7 },
+    { 0x1BAA, 0x1C2B },
+    { 0x1C34, 0x1C35 },
+    { 0x1C38, 0x1DBF },
+    { 0x1DE7, 0x1DFD },
     { 0x1E00, 0x1FBC },
     { 0x1FBE, 0x1FBE },
     { 0x1FC2, 0x1FCC },
@@ -153,7 +168,7 @@
     { 0x207F, 0x207F },
     { 0x208F, 0x209F },
     { 0x20B6, 0x20CF },
-    { 0x20F0, 0x20FF },
+    { 0x20F1, 0x20FF },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
@@ -174,9 +189,10 @@
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
     { 0x249C, 0x24E9 },
-    { 0x269D, 0x269F },
+    { 0x269E, 0x269F },
     { 0x26AC, 0x26AC },
-    { 0x26B3, 0x2700 },
+    { 0x26BD, 0x26BF },
+    { 0x26C4, 0x2700 },
     { 0x2705, 0x2705 },
     { 0x270A, 0x270B },
     { 0x2728, 0x2728 },
@@ -188,15 +204,14 @@
     { 0x2795, 0x2797 },
     { 0x27B0, 0x27B0 },
     { 0x27BF, 0x27BF },
-    { 0x27CB, 0x27CF },
-    { 0x27EC, 0x27EF },
+    { 0x27CB, 0x27CB },
+    { 0x27CD, 0x27CF },
     { 0x2800, 0x28FF },
-    { 0x2B1B, 0x2B1F },
-    { 0x2B24, 0x2CE4 },
+    { 0x2B4D, 0x2B4F },
+    { 0x2B55, 0x2CE4 },
     { 0x2CEB, 0x2CF8 },
-    { 0x2D00, 0x2DFF },
-    { 0x2E18, 0x2E1B },
-    { 0x2E1E, 0x2E7F },
+    { 0x2D00, 0x2DDF },
+    { 0x2E31, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
@@ -209,7 +224,7 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x31BF },
-    { 0x31D0, 0x321C },
+    { 0x31E4, 0x321C },
     { 0x321F, 0x324F },
     { 0x3260, 0x327B },
     { 0x327F, 0x32B0 },
@@ -219,15 +234,26 @@
     { 0x33E0, 0x33FE },
     { 0x3400, 0x4DBF },
     { 0x4E00, 0xA48F },
-    { 0xA4C7, 0xA6FF },
-    { 0xA71B, 0xA71F },
-    { 0xA722, 0xA801 },
+    { 0xA4C7, 0xA60C },
+    { 0xA610, 0xA66E },
+    { 0xA674, 0xA67B },
+    { 0xA680, 0xA6FF },
+    { 0xA722, 0xA787 },
+    { 0xA789, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA824 },
     { 0xA827, 0xA827 },
     { 0xA82C, 0xA873 },
-    { 0xA878, 0xFB1C },
+    { 0xA878, 0xA8C3 },
+    { 0xA8C5, 0xA925 },
+    { 0xA92E, 0xA946 },
+    { 0xA952, 0xAA28 },
+    { 0xAA2F, 0xAA30 },
+    { 0xAA33, 0xAA34 },
+    { 0xAA37, 0xAA42 },
+    { 0xAA44, 0xAA4B },
+    { 0xAA4D, 0xFB1C },
     { 0xFF00, 0xFF00 },
     { 0xFF21, 0xFF3A },
     { 0xFF41, 0xFF5A },
@@ -236,7 +262,9 @@
     { 0xFFEF, 0xFFEF },
     { 0x10000, 0x10100 },
     { 0x10102, 0x1013F },
-    { 0x1018B, 0x107FF },
+    { 0x1018B, 0x1018F },
+    { 0x1019C, 0x101FC },
+    { 0x101FE, 0x107FF },
     { 0x11000, 0x1D166 },
     { 0x1D16A, 0x1D172 },
     { 0x1D183, 0x1D184 },
@@ -244,7 +272,9 @@
     { 0x1D1AE, 0x1D1FF },
     { 0x1D246, 0x1D2FF },
     { 0x1D357, 0x1D7CD },
-    { 0x1D800, 0x1FFFD },
+    { 0x1D800, 0x1EFFF },
+    { 0x1F02C, 0x1F02F },
+    { 0x1F094, 0x1FFFD },
     { 0x20000, 0x2FFFD },
     { 0x30000, 0x3FFFD },
     { 0x40000, 0x4FFFD },
--- a/tests/unictype/test-pr_bidi_non_spacing_mark.c
+++ b/tests/unictype/test-pr_bidi_non_spacing_mark.c
@@ -18,14 +18,13 @@
 #include "test-predicate-part1.h"
 
     { 0x0300, 0x036F },
-    { 0x0483, 0x0486 },
-    { 0x0488, 0x0489 },
+    { 0x0483, 0x0489 },
     { 0x0591, 0x05BD },
     { 0x05BF, 0x05BF },
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x065E },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
@@ -52,7 +51,9 @@
     { 0x0A41, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A82 },
     { 0x0ABC, 0x0ABC },
     { 0x0AC1, 0x0AC5 },
@@ -62,9 +63,10 @@
     { 0x0B01, 0x0B01 },
     { 0x0B3C, 0x0B3C },
     { 0x0B3F, 0x0B3F },
-    { 0x0B41, 0x0B43 },
+    { 0x0B41, 0x0B44 },
     { 0x0B4D, 0x0B4D },
     { 0x0B56, 0x0B56 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BC0, 0x0BC0 },
     { 0x0BCD, 0x0BCD },
@@ -72,11 +74,13 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0CBC, 0x0CBC },
     { 0x0CCC, 0x0CCD },
     { 0x0CE2, 0x0CE3 },
-    { 0x0D41, 0x0D43 },
+    { 0x0D41, 0x0D44 },
     { 0x0D4D, 0x0D4D },
+    { 0x0D62, 0x0D63 },
     { 0x0DCA, 0x0DCA },
     { 0x0DD2, 0x0DD4 },
     { 0x0DD6, 0x0DD6 },
@@ -98,10 +102,15 @@
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
-    { 0x1032, 0x1032 },
-    { 0x1036, 0x1037 },
-    { 0x1039, 0x1039 },
+    { 0x1032, 0x1037 },
+    { 0x1039, 0x103A },
+    { 0x103D, 0x103E },
     { 0x1058, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x1082 },
+    { 0x1085, 0x1086 },
+    { 0x108D, 0x108D },
     { 0x135F, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
@@ -114,7 +123,7 @@
     { 0x180B, 0x180D },
     { 0x18A9, 0x18A9 },
     { 0x1920, 0x1922 },
-    { 0x1927, 0x192B },
+    { 0x1927, 0x1928 },
     { 0x1932, 0x1932 },
     { 0x1939, 0x193B },
     { 0x1A17, 0x1A18 },
@@ -124,18 +133,35 @@
     { 0x1B3C, 0x1B3C },
     { 0x1B42, 0x1B42 },
     { 0x1B6B, 0x1B73 },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B81 },
+    { 0x1BA2, 0x1BA5 },
+    { 0x1BA8, 0x1BA9 },
+    { 0x1C2C, 0x1C33 },
+    { 0x1C36, 0x1C37 },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
-    { 0x20D0, 0x20EF },
+    { 0x20D0, 0x20F0 },
+    { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
+    { 0xA66F, 0xA672 },
+    { 0xA67C, 0xA67D },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA951 },
+    { 0xAA29, 0xAA2E },
+    { 0xAA31, 0xAA32 },
+    { 0xAA35, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4C },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
+    { 0x101FD, 0x101FD },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
--- a/tests/unictype/test-pr_bidi_other_neutral.c
+++ b/tests/unictype/test-pr_bidi_other_neutral.c
@@ -42,11 +42,13 @@
     { 0x0387, 0x0387 },
     { 0x03F6, 0x03F6 },
     { 0x058A, 0x058A },
+    { 0x0606, 0x0607 },
     { 0x060E, 0x060F },
     { 0x06E9, 0x06E9 },
     { 0x07F6, 0x07F9 },
     { 0x0BF3, 0x0BF8 },
     { 0x0BFA, 0x0BFA },
+    { 0x0C78, 0x0C7E },
     { 0x0CF1, 0x0CF2 },
     { 0x0F3A, 0x0F3D },
     { 0x1390, 0x1399 },
@@ -87,9 +89,10 @@
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x2460, 0x2487 },
-    { 0x24EA, 0x269C },
+    { 0x24EA, 0x269D },
     { 0x26A0, 0x26AB },
-    { 0x26AD, 0x26B2 },
+    { 0x26AD, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -102,14 +105,13 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x27FF },
-    { 0x2900, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x27FF },
+    { 0x2900, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2CE5, 0x2CEA },
     { 0x2CF9, 0x2CFF },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2E00, 0x2E30 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
@@ -122,7 +124,7 @@
     { 0x309B, 0x309C },
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x321D, 0x321E },
     { 0x3250, 0x325F },
     { 0x327C, 0x327E },
@@ -133,8 +135,11 @@
     { 0x33FF, 0x33FF },
     { 0x4DC0, 0x4DFF },
     { 0xA490, 0xA4C6 },
-    { 0xA700, 0xA71A },
-    { 0xA720, 0xA721 },
+    { 0xA60D, 0xA60F },
+    { 0xA673, 0xA673 },
+    { 0xA67E, 0xA67F },
+    { 0xA700, 0xA721 },
+    { 0xA788, 0xA788 },
     { 0xA828, 0xA82B },
     { 0xA874, 0xA877 },
     { 0xFD3E, 0xFD3F },
@@ -158,10 +163,13 @@
     { 0xFFF9, 0xFFFD },
     { 0x10101, 0x10101 },
     { 0x10140, 0x1018A },
+    { 0x10190, 0x1019B },
     { 0x1091F, 0x1091F },
     { 0x1D200, 0x1D241 },
     { 0x1D245, 0x1D245 },
-    { 0x1D300, 0x1D356 }
+    { 0x1D300, 0x1D356 },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 }
 
 #define PREDICATE(c) uc_is_property_bidi_other_neutral (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_combining.c
+++ b/tests/unictype/test-pr_combining.c
@@ -18,14 +18,13 @@
 #include "test-predicate-part1.h"
 
     { 0x0300, 0x036F },
-    { 0x0483, 0x0486 },
-    { 0x0488, 0x0489 },
+    { 0x0483, 0x0489 },
     { 0x0591, 0x05BD },
     { 0x05BF, 0x05BF },
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x065E },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
@@ -53,7 +52,9 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0ABC, 0x0ABC },
     { 0x0ABE, 0x0AC5 },
@@ -62,10 +63,11 @@
     { 0x0AE2, 0x0AE3 },
     { 0x0B01, 0x0B03 },
     { 0x0B3C, 0x0B3C },
-    { 0x0B3E, 0x0B43 },
+    { 0x0B3E, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
@@ -76,6 +78,7 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0C82, 0x0C83 },
     { 0x0CBC, 0x0CBC },
     { 0x0CBE, 0x0CC4 },
@@ -84,10 +87,11 @@
     { 0x0CD5, 0x0CD6 },
     { 0x0CE2, 0x0CE3 },
     { 0x0D02, 0x0D03 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3E, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
+    { 0x0D62, 0x0D63 },
     { 0x0D82, 0x0D83 },
     { 0x0DCA, 0x0DCA },
     { 0x0DCF, 0x0DD4 },
@@ -111,9 +115,14 @@
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
+    { 0x102B, 0x103E },
     { 0x1056, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1062, 0x1064 },
+    { 0x1067, 0x106D },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x108D },
+    { 0x108F, 0x108F },
     { 0x135F, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
@@ -131,18 +140,32 @@
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B6B, 0x1B73 },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B82 },
+    { 0x1BA1, 0x1BAA },
+    { 0x1C24, 0x1C37 },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
-    { 0x20D0, 0x20EF },
+    { 0x20D0, 0x20F0 },
+    { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
+    { 0xA66F, 0xA672 },
+    { 0xA67C, 0xA67D },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA827 },
+    { 0xA880, 0xA881 },
+    { 0xA8B4, 0xA8C4 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA953 },
+    { 0xAA29, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4D },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
+    { 0x101FD, 0x101FD },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
--- a/tests/unictype/test-pr_dash.c
+++ b/tests/unictype/test-pr_dash.c
@@ -27,6 +27,7 @@
     { 0x208B, 0x208B },
     { 0x2212, 0x2212 },
     { 0x2E17, 0x2E17 },
+    { 0x2E1A, 0x2E1A },
     { 0x301C, 0x301C },
     { 0x3030, 0x3030 },
     { 0x30A0, 0x30A0 },
--- a/tests/unictype/test-pr_decimal_digit.c
+++ b/tests/unictype/test-pr_decimal_digit.c
@@ -34,11 +34,19 @@
     { 0x0ED0, 0x0ED9 },
     { 0x0F20, 0x0F29 },
     { 0x1040, 0x1049 },
+    { 0x1090, 0x1099 },
     { 0x17E0, 0x17E9 },
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
     { 0x1B50, 0x1B59 },
+    { 0x1BB0, 0x1BB9 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C50, 0x1C59 },
+    { 0xA620, 0xA629 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA909 },
+    { 0xAA50, 0xAA59 },
     { 0xFF10, 0xFF19 },
     { 0x104A0, 0x104A9 },
     { 0x1D7CE, 0x1D7FF }
--- a/tests/unictype/test-pr_default_ignorable_code_point.c
+++ b/tests/unictype/test-pr_default_ignorable_code_point.c
@@ -17,15 +17,8 @@
 
 #include "test-predicate-part1.h"
 
-    { 0x0000, 0x0008 },
-    { 0x000E, 0x001F },
-    { 0x007F, 0x0084 },
-    { 0x0086, 0x009F },
     { 0x00AD, 0x00AD },
     { 0x034F, 0x034F },
-    { 0x0600, 0x0603 },
-    { 0x06DD, 0x06DD },
-    { 0x070F, 0x070F },
     { 0x115F, 0x1160 },
     { 0x17B4, 0x17B5 },
     { 0x180B, 0x180D },
@@ -33,30 +26,12 @@
     { 0x202A, 0x202E },
     { 0x2060, 0x206F },
     { 0x3164, 0x3164 },
-    { 0xD800, 0xDFFF },
-    { 0xFDD0, 0xFDEF },
     { 0xFE00, 0xFE0F },
     { 0xFEFF, 0xFEFF },
     { 0xFFA0, 0xFFA0 },
     { 0xFFF0, 0xFFF8 },
-    { 0xFFFE, 0xFFFF },
     { 0x1D173, 0x1D17A },
-    { 0x1FFFE, 0x1FFFF },
-    { 0x2FFFE, 0x2FFFF },
-    { 0x3FFFE, 0x3FFFF },
-    { 0x4FFFE, 0x4FFFF },
-    { 0x5FFFE, 0x5FFFF },
-    { 0x6FFFE, 0x6FFFF },
-    { 0x7FFFE, 0x7FFFF },
-    { 0x8FFFE, 0x8FFFF },
-    { 0x9FFFE, 0x9FFFF },
-    { 0xAFFFE, 0xAFFFF },
-    { 0xBFFFE, 0xBFFFF },
-    { 0xCFFFE, 0xCFFFF },
-    { 0xDFFFE, 0xE0FFF },
-    { 0xEFFFE, 0xEFFFF },
-    { 0xFFFFE, 0xFFFFF },
-    { 0x10FFFE, 0x10FFFF }
+    { 0xE0000, 0xE0FFF }
 
 #define PREDICATE(c) uc_is_property_default_ignorable_code_point (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_deprecated.c
+++ b/tests/unictype/test-pr_deprecated.c
@@ -20,7 +20,9 @@
     { 0x0340, 0x0341 },
     { 0x17A3, 0x17A3 },
     { 0x17D3, 0x17D3 },
-    { 0x206A, 0x206F }
+    { 0x206A, 0x206F },
+    { 0xE0001, 0xE0001 },
+    { 0xE0020, 0xE007F }
 
 #define PREDICATE(c) uc_is_property_deprecated (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_diacritic.c
+++ b/tests/unictype/test-pr_diacritic.c
@@ -29,7 +29,7 @@
     { 0x0374, 0x0375 },
     { 0x037A, 0x037A },
     { 0x0384, 0x0385 },
-    { 0x0483, 0x0486 },
+    { 0x0483, 0x0487 },
     { 0x0559, 0x0559 },
     { 0x0591, 0x05A1 },
     { 0x05A3, 0x05BD },
@@ -47,6 +47,7 @@
     { 0x093C, 0x093C },
     { 0x094D, 0x094D },
     { 0x0951, 0x0954 },
+    { 0x0971, 0x0971 },
     { 0x09BC, 0x09BC },
     { 0x09CD, 0x09CD },
     { 0x0A3C, 0x0A3C },
@@ -73,15 +74,20 @@
     { 0x0F86, 0x0F87 },
     { 0x0FC6, 0x0FC6 },
     { 0x1037, 0x1037 },
-    { 0x1039, 0x1039 },
+    { 0x1039, 0x103A },
+    { 0x1087, 0x108D },
+    { 0x108F, 0x108F },
     { 0x17C9, 0x17D3 },
     { 0x17DD, 0x17DD },
     { 0x1939, 0x193B },
     { 0x1B34, 0x1B34 },
     { 0x1B44, 0x1B44 },
     { 0x1B6B, 0x1B73 },
+    { 0x1BAA, 0x1BAA },
+    { 0x1C36, 0x1C37 },
+    { 0x1C78, 0x1C7D },
     { 0x1D2C, 0x1D6A },
-    { 0x1DC4, 0x1DCA },
+    { 0x1DC4, 0x1DCF },
     { 0x1DFE, 0x1DFF },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
@@ -89,13 +95,20 @@
     { 0x1FDD, 0x1FDF },
     { 0x1FED, 0x1FEF },
     { 0x1FFD, 0x1FFE },
+    { 0x2E2F, 0x2E2F },
     { 0x302A, 0x302F },
     { 0x3099, 0x309C },
     { 0x30FC, 0x30FC },
-    { 0xA717, 0xA71A },
-    { 0xA720, 0xA721 },
+    { 0xA66F, 0xA66F },
+    { 0xA67C, 0xA67D },
+    { 0xA67F, 0xA67F },
+    { 0xA717, 0xA721 },
+    { 0xA788, 0xA788 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA92B, 0xA92E },
+    { 0xA953, 0xA953 },
     { 0xFB1E, 0xFB1E },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFF3E, 0xFF3E },
     { 0xFF40, 0xFF40 },
     { 0xFF70, 0xFF70 },
--- a/tests/unictype/test-pr_extender.c
+++ b/tests/unictype/test-pr_extender.c
@@ -24,11 +24,14 @@
     { 0x0E46, 0x0E46 },
     { 0x0EC6, 0x0EC6 },
     { 0x1843, 0x1843 },
+    { 0x1C36, 0x1C36 },
+    { 0x1C7B, 0x1C7B },
     { 0x3005, 0x3005 },
     { 0x3031, 0x3035 },
     { 0x309D, 0x309E },
     { 0x30FC, 0x30FE },
     { 0xA015, 0xA015 },
+    { 0xA60C, 0xA60C },
     { 0xFF70, 0xFF70 }
 
 #define PREDICATE(c) uc_is_property_extender (c)
--- a/tests/unictype/test-pr_format_control.c
+++ b/tests/unictype/test-pr_format_control.c
@@ -20,7 +20,7 @@
     { 0x00AD, 0x00AD },
     { 0x070F, 0x070F },
     { 0x200B, 0x200B },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
     { 0x1D173, 0x1D17A },
     { 0xE0001, 0xE0001 },
--- a/tests/unictype/test-pr_grapheme_base.c
+++ b/tests/unictype/test-pr_grapheme_base.c
@@ -20,14 +20,13 @@
     { 0x0020, 0x007E },
     { 0x00A0, 0x00AC },
     { 0x00AE, 0x02FF },
-    { 0x0374, 0x0375 },
+    { 0x0370, 0x0377 },
     { 0x037A, 0x037E },
     { 0x0384, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x0482 },
-    { 0x048A, 0x0513 },
+    { 0x03A3, 0x0482 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
@@ -38,11 +37,10 @@
     { 0x05C6, 0x05C6 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F4 },
-    { 0x060B, 0x060F },
+    { 0x0606, 0x060F },
     { 0x061B, 0x061B },
     { 0x061E, 0x061F },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x0660, 0x066F },
     { 0x0671, 0x06D5 },
     { 0x06E5, 0x06E6 },
@@ -50,8 +48,7 @@
     { 0x06EE, 0x070D },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07FA },
@@ -60,7 +57,7 @@
     { 0x0949, 0x094C },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0964, 0x0970 },
+    { 0x0964, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0982, 0x0983 },
     { 0x0985, 0x098C },
@@ -132,6 +129,7 @@
     { 0x0BC1, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCC },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BE6, 0x0BFA },
     { 0x0C01, 0x0C03 },
     { 0x0C05, 0x0C0C },
@@ -139,9 +137,12 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
     { 0x0C41, 0x0C44 },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C66, 0x0C6F },
+    { 0x0C78, 0x0C7F },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -162,11 +163,13 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D3F, 0x0D40 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4C },
     { 0x0D60, 0x0D61 },
-    { 0x0D66, 0x0D6F },
+    { 0x0D66, 0x0D75 },
+    { 0x0D79, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -203,21 +206,25 @@
     { 0x0F36, 0x0F36 },
     { 0x0F38, 0x0F38 },
     { 0x0F3A, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F7F, 0x0F7F },
     { 0x0F85, 0x0F85 },
     { 0x0F88, 0x0F8B },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
-    { 0x0FCF, 0x0FD1 },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x102C },
+    { 0x0FCE, 0x0FD4 },
+    { 0x1000, 0x102C },
     { 0x1031, 0x1031 },
     { 0x1038, 0x1038 },
-    { 0x1040, 0x1057 },
-    { 0x10A0, 0x10C5 },
+    { 0x103B, 0x103C },
+    { 0x103F, 0x1057 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x1083, 0x1084 },
+    { 0x1087, 0x108C },
+    { 0x108E, 0x1099 },
+    { 0x109E, 0x10C5 },
     { 0x10D0, 0x10FC },
     { 0x1100, 0x1159 },
     { 0x115F, 0x11A2 },
@@ -263,6 +270,7 @@
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1923, 0x1926 },
     { 0x1929, 0x192B },
@@ -284,10 +292,16 @@
     { 0x1B43, 0x1B4B },
     { 0x1B50, 0x1B6A },
     { 0x1B74, 0x1B7C },
+    { 0x1B82, 0x1BA1 },
+    { 0x1BA6, 0x1BA7 },
+    { 0x1BAA, 0x1BAA },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C2B },
+    { 0x1C34, 0x1C35 },
+    { 0x1C3B, 0x1C49 },
+    { 0x1C4D, 0x1C7F },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -310,13 +324,14 @@
     { 0x2074, 0x208E },
     { 0x2090, 0x2094 },
     { 0x20A0, 0x20B5 },
-    { 0x2100, 0x214E },
-    { 0x2153, 0x2184 },
+    { 0x2100, 0x214F },
+    { 0x2153, 0x2188 },
     { 0x2190, 0x23E7 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269C },
-    { 0x26A0, 0x26B2 },
+    { 0x2460, 0x269D },
+    { 0x26A0, 0x26BC },
+    { 0x26C0, 0x26C3 },
     { 0x2701, 0x2704 },
     { 0x2706, 0x2709 },
     { 0x270C, 0x2727 },
@@ -329,13 +344,13 @@
     { 0x2798, 0x27AF },
     { 0x27B1, 0x27BE },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x2B1A },
-    { 0x2B20, 0x2B23 },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x2B4C },
+    { 0x2B50, 0x2B54 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CEA },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -349,8 +364,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2E00, 0x2E30 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
@@ -359,24 +373,43 @@
     { 0x3030, 0x303F },
     { 0x3041, 0x3096 },
     { 0x309B, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x3190, 0x31B7 },
-    { 0x31C0, 0x31CF },
+    { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
     { 0x3220, 0x3243 },
     { 0x3250, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FBB },
+    { 0x4DC0, 0x9FC3 },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA700, 0xA71A },
-    { 0xA720, 0xA721 },
-    { 0xA800, 0xA805 },
+    { 0xA500, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA673, 0xA673 },
+    { 0xA67E, 0xA697 },
+    { 0xA700, 0xA78C },
+    { 0xA7FB, 0xA801 },
+    { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA824 },
     { 0xA827, 0xA82B },
     { 0xA840, 0xA877 },
+    { 0xA880, 0xA8C3 },
+    { 0xA8CE, 0xA8D9 },
+    { 0xA900, 0xA925 },
+    { 0xA92E, 0xA946 },
+    { 0xA952, 0xA953 },
+    { 0xA95F, 0xA95F },
+    { 0xAA00, 0xAA28 },
+    { 0xAA2F, 0xAA30 },
+    { 0xAA33, 0xAA34 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
+    { 0xAA4D, 0xAA4D },
+    { 0xAA50, 0xAA59 },
+    { 0xAA5C, 0xAA5F },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -400,7 +433,8 @@
     { 0xFE68, 0xFE6B },
     { 0xFE70, 0xFE74 },
     { 0xFE76, 0xFEFC },
-    { 0xFF01, 0xFFBE },
+    { 0xFF01, 0xFF9D },
+    { 0xFFA0, 0xFFBE },
     { 0xFFC2, 0xFFC7 },
     { 0xFFCA, 0xFFCF },
     { 0xFFD2, 0xFFD7 },
@@ -418,6 +452,10 @@
     { 0x10100, 0x10102 },
     { 0x10107, 0x10133 },
     { 0x10137, 0x1018A },
+    { 0x10190, 0x1019B },
+    { 0x101D0, 0x101FC },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10320, 0x10323 },
     { 0x10330, 0x1034A },
@@ -433,7 +471,8 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10919 },
-    { 0x1091F, 0x1091F },
+    { 0x1091F, 0x10939 },
+    { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
@@ -445,7 +484,7 @@
     { 0x12470, 0x12473 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
-    { 0x1D12A, 0x1D164 },
+    { 0x1D129, 0x1D164 },
     { 0x1D166, 0x1D166 },
     { 0x1D16A, 0x1D16D },
     { 0x1D183, 0x1D184 },
@@ -476,6 +515,8 @@
     { 0x1D552, 0x1D6A5 },
     { 0x1D6A8, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F000, 0x1F02B },
+    { 0x1F030, 0x1F093 },
     { 0x20000, 0x2A6D6 },
     { 0x2F800, 0x2FA1D }
 
--- a/tests/unictype/test-pr_grapheme_extend.c
+++ b/tests/unictype/test-pr_grapheme_extend.c
@@ -18,14 +18,13 @@
 #include "test-predicate-part1.h"
 
     { 0x0300, 0x036F },
-    { 0x0483, 0x0486 },
-    { 0x0488, 0x0489 },
+    { 0x0483, 0x0489 },
     { 0x0591, 0x05BD },
     { 0x05BF, 0x05BF },
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x065E },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
@@ -54,7 +53,9 @@
     { 0x0A41, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A82 },
     { 0x0ABC, 0x0ABC },
     { 0x0AC1, 0x0AC5 },
@@ -64,9 +65,10 @@
     { 0x0B01, 0x0B01 },
     { 0x0B3C, 0x0B3C },
     { 0x0B3E, 0x0B3F },
-    { 0x0B41, 0x0B43 },
+    { 0x0B41, 0x0B44 },
     { 0x0B4D, 0x0B4D },
     { 0x0B56, 0x0B57 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BBE },
     { 0x0BC0, 0x0BC0 },
@@ -76,6 +78,7 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0CBC, 0x0CBC },
     { 0x0CBF, 0x0CBF },
     { 0x0CC2, 0x0CC2 },
@@ -84,9 +87,10 @@
     { 0x0CD5, 0x0CD6 },
     { 0x0CE2, 0x0CE3 },
     { 0x0D3E, 0x0D3E },
-    { 0x0D41, 0x0D43 },
+    { 0x0D41, 0x0D44 },
     { 0x0D4D, 0x0D4D },
     { 0x0D57, 0x0D57 },
+    { 0x0D62, 0x0D63 },
     { 0x0DCA, 0x0DCA },
     { 0x0DCF, 0x0DCF },
     { 0x0DD2, 0x0DD4 },
@@ -110,10 +114,15 @@
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
-    { 0x1032, 0x1032 },
-    { 0x1036, 0x1037 },
-    { 0x1039, 0x1039 },
+    { 0x1032, 0x1037 },
+    { 0x1039, 0x103A },
+    { 0x103D, 0x103E },
     { 0x1058, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x1082 },
+    { 0x1085, 0x1086 },
+    { 0x108D, 0x108D },
     { 0x135F, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
@@ -136,18 +145,37 @@
     { 0x1B3C, 0x1B3C },
     { 0x1B42, 0x1B42 },
     { 0x1B6B, 0x1B73 },
-    { 0x1DC0, 0x1DCA },
+    { 0x1B80, 0x1B81 },
+    { 0x1BA2, 0x1BA5 },
+    { 0x1BA8, 0x1BA9 },
+    { 0x1C2C, 0x1C33 },
+    { 0x1C36, 0x1C37 },
+    { 0x1DC0, 0x1DE6 },
     { 0x1DFE, 0x1DFF },
     { 0x200C, 0x200D },
-    { 0x20D0, 0x20EF },
+    { 0x20D0, 0x20F0 },
+    { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
+    { 0xA66F, 0xA672 },
+    { 0xA67C, 0xA67D },
+    { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA951 },
+    { 0xAA29, 0xAA2E },
+    { 0xAA31, 0xAA32 },
+    { 0xAA35, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4C },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
+    { 0xFF9E, 0xFF9F },
+    { 0x101FD, 0x101FD },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A0F },
--- a/tests/unictype/test-pr_grapheme_link.c
+++ b/tests/unictype/test-pr_grapheme_link.c
@@ -29,12 +29,15 @@
     { 0x0DCA, 0x0DCA },
     { 0x0E3A, 0x0E3A },
     { 0x0F84, 0x0F84 },
-    { 0x1039, 0x1039 },
+    { 0x1039, 0x103A },
     { 0x1714, 0x1714 },
     { 0x1734, 0x1734 },
     { 0x17D2, 0x17D2 },
     { 0x1B44, 0x1B44 },
+    { 0x1BAA, 0x1BAA },
     { 0xA806, 0xA806 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA953, 0xA953 },
     { 0x10A3F, 0x10A3F }
 
 #define PREDICATE(c) uc_is_property_grapheme_link (c)
--- a/tests/unictype/test-pr_id_continue.c
+++ b/tests/unictype/test-pr_id_continue.c
@@ -23,24 +23,25 @@
     { 0x0061, 0x007A },
     { 0x00AA, 0x00AA },
     { 0x00B5, 0x00B5 },
+    { 0x00B7, 0x00B7 },
     { 0x00BA, 0x00BA },
     { 0x00C0, 0x00D6 },
     { 0x00D8, 0x00F6 },
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
-    { 0x0300, 0x036F },
+    { 0x0300, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
-    { 0x0386, 0x0386 },
-    { 0x0388, 0x038A },
+    { 0x0386, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x0483, 0x0486 },
-    { 0x048A, 0x0513 },
+    { 0x0483, 0x0487 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -51,9 +52,8 @@
     { 0x05C7, 0x05C7 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0610, 0x0615 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x065E },
+    { 0x0610, 0x061A },
+    { 0x0621, 0x065E },
     { 0x0660, 0x0669 },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
@@ -61,8 +61,7 @@
     { 0x06EA, 0x06FC },
     { 0x06FF, 0x06FF },
     { 0x0710, 0x074A },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07B1 },
+    { 0x074D, 0x07B1 },
     { 0x07C0, 0x07F5 },
     { 0x07FA, 0x07FA },
     { 0x0901, 0x0939 },
@@ -70,6 +69,7 @@
     { 0x0950, 0x0954 },
     { 0x0958, 0x0963 },
     { 0x0966, 0x096F },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
@@ -97,9 +97,10 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A59, 0x0A5C },
     { 0x0A5E, 0x0A5E },
-    { 0x0A66, 0x0A74 },
+    { 0x0A66, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0A85, 0x0A8D },
     { 0x0A8F, 0x0A91 },
@@ -120,12 +121,12 @@
     { 0x0B2A, 0x0B30 },
     { 0x0B32, 0x0B33 },
     { 0x0B35, 0x0B39 },
-    { 0x0B3C, 0x0B43 },
+    { 0x0B3C, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
-    { 0x0B5F, 0x0B61 },
+    { 0x0B5F, 0x0B63 },
     { 0x0B66, 0x0B6F },
     { 0x0B71, 0x0B71 },
     { 0x0B82, 0x0B83 },
@@ -141,6 +142,7 @@
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCD },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BD7, 0x0BD7 },
     { 0x0BE6, 0x0BEF },
     { 0x0C01, 0x0C03 },
@@ -149,11 +151,12 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
-    { 0x0C3E, 0x0C44 },
+    { 0x0C3D, 0x0C44 },
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
-    { 0x0C60, 0x0C61 },
+    { 0x0C58, 0x0C59 },
+    { 0x0C60, 0x0C63 },
     { 0x0C66, 0x0C6F },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
@@ -173,12 +176,13 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
-    { 0x0D60, 0x0D61 },
+    { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D6F },
+    { 0x0D7A, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -218,19 +222,14 @@
     { 0x0F37, 0x0F37 },
     { 0x0F39, 0x0F39 },
     { 0x0F3E, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F84 },
     { 0x0F86, 0x0F8B },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
-    { 0x1040, 0x1049 },
-    { 0x1050, 0x1059 },
+    { 0x1000, 0x1049 },
+    { 0x1050, 0x1099 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -277,7 +276,7 @@
     { 0x180B, 0x180D },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
-    { 0x1880, 0x18A9 },
+    { 0x1880, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
@@ -290,10 +289,13 @@
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B6B, 0x1B73 },
-    { 0x1D00, 0x1DCA },
-    { 0x1DFE, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1B80, 0x1BAA },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C37 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C4D, 0x1C7D },
+    { 0x1D00, 0x1DE6 },
+    { 0x1DFE, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -319,7 +321,7 @@
     { 0x2090, 0x2094 },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
-    { 0x20E5, 0x20EF },
+    { 0x20E5, 0x20F0 },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
@@ -332,11 +334,11 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -350,6 +352,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2DE0, 0x2DFF },
     { 0x3005, 0x3007 },
     { 0x3021, 0x302F },
     { 0x3031, 0x3035 },
@@ -358,16 +361,31 @@
     { 0x3099, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA827 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66F },
+    { 0xA67C, 0xA67D },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA827 },
     { 0xA840, 0xA873 },
+    { 0xA880, 0xA8C4 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA92D },
+    { 0xA930, 0xA953 },
+    { 0xAA00, 0xAA36 },
+    { 0xAA40, 0xAA4D },
+    { 0xAA50, 0xAA59 },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -386,7 +404,7 @@
     { 0xFD92, 0xFDC7 },
     { 0xFDF0, 0xFDFB },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFE33, 0xFE34 },
     { 0xFE4D, 0xFE4F },
     { 0xFE70, 0xFE74 },
@@ -408,6 +426,9 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x101FD, 0x101FD },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -423,6 +444,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A13 },
--- a/tests/unictype/test-pr_id_start.c
+++ b/tests/unictype/test-pr_id_start.c
@@ -27,23 +27,24 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
@@ -53,8 +54,7 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
@@ -63,6 +63,7 @@
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -114,11 +115,14 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -132,7 +136,9 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -160,12 +166,17 @@
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -206,6 +217,7 @@
     { 0x17DC, 0x17DC },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
@@ -214,10 +226,13 @@
     { 0x1A00, 0x1A16 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BAF },
+    { 0x1C00, 0x1C23 },
+    { 0x1C4D, 0x1C4F },
+    { 0x1C5A, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -251,11 +266,11 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -277,19 +292,33 @@
     { 0x309B, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA61F },
+    { 0xA62A, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA90A, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -325,6 +354,8 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -339,6 +370,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-pr_ideographic.c
+++ b/tests/unictype/test-pr_ideographic.c
@@ -21,8 +21,9 @@
     { 0x3021, 0x3029 },
     { 0x3038, 0x303A },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xF900, 0xFA2D },
+    { 0xFA30, 0xFA6A },
     { 0xFA70, 0xFAD9 },
     { 0x20000, 0x2A6D6 },
     { 0x2F800, 0x2FA1D }
--- a/tests/unictype/test-pr_ignorable_control.c
+++ b/tests/unictype/test-pr_ignorable_control.c
@@ -28,7 +28,7 @@
     { 0x17B4, 0x17B5 },
     { 0x200B, 0x200F },
     { 0x202A, 0x202E },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },
--- a/tests/unictype/test-pr_lowercase.c
+++ b/tests/unictype/test-pr_lowercase.c
@@ -168,6 +168,9 @@
     { 0x02C0, 0x02C1 },
     { 0x02E0, 0x02E4 },
     { 0x0345, 0x0345 },
+    { 0x0371, 0x0371 },
+    { 0x0373, 0x0373 },
+    { 0x0377, 0x0377 },
     { 0x037A, 0x037D },
     { 0x0390, 0x0390 },
     { 0x03AC, 0x03CE },
@@ -274,6 +277,14 @@
     { 0x050F, 0x050F },
     { 0x0511, 0x0511 },
     { 0x0513, 0x0513 },
+    { 0x0515, 0x0515 },
+    { 0x0517, 0x0517 },
+    { 0x0519, 0x0519 },
+    { 0x051B, 0x051B },
+    { 0x051D, 0x051D },
+    { 0x051F, 0x051F },
+    { 0x0521, 0x0521 },
+    { 0x0523, 0x0523 },
     { 0x0561, 0x0587 },
     { 0x1D00, 0x1DBF },
     { 0x1E01, 0x1E01 },
@@ -350,7 +361,8 @@
     { 0x1E8F, 0x1E8F },
     { 0x1E91, 0x1E91 },
     { 0x1E93, 0x1E93 },
-    { 0x1E95, 0x1E9B },
+    { 0x1E95, 0x1E9D },
+    { 0x1E9F, 0x1E9F },
     { 0x1EA1, 0x1EA1 },
     { 0x1EA3, 0x1EA3 },
     { 0x1EA5, 0x1EA5 },
@@ -396,7 +408,9 @@
     { 0x1EF5, 0x1EF5 },
     { 0x1EF7, 0x1EF7 },
     { 0x1EF9, 0x1EF9 },
-    { 0x1F00, 0x1F07 },
+    { 0x1EFB, 0x1EFB },
+    { 0x1EFD, 0x1EFD },
+    { 0x1EFF, 0x1F07 },
     { 0x1F10, 0x1F15 },
     { 0x1F20, 0x1F27 },
     { 0x1F30, 0x1F37 },
@@ -438,8 +452,9 @@
     { 0x2C68, 0x2C68 },
     { 0x2C6A, 0x2C6A },
     { 0x2C6C, 0x2C6C },
-    { 0x2C74, 0x2C74 },
-    { 0x2C76, 0x2C77 },
+    { 0x2C71, 0x2C71 },
+    { 0x2C73, 0x2C74 },
+    { 0x2C76, 0x2C7D },
     { 0x2C81, 0x2C81 },
     { 0x2C83, 0x2C83 },
     { 0x2C85, 0x2C85 },
@@ -491,6 +506,86 @@
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE4 },
     { 0x2D00, 0x2D25 },
+    { 0xA641, 0xA641 },
+    { 0xA643, 0xA643 },
+    { 0xA645, 0xA645 },
+    { 0xA647, 0xA647 },
+    { 0xA649, 0xA649 },
+    { 0xA64B, 0xA64B },
+    { 0xA64D, 0xA64D },
+    { 0xA64F, 0xA64F },
+    { 0xA651, 0xA651 },
+    { 0xA653, 0xA653 },
+    { 0xA655, 0xA655 },
+    { 0xA657, 0xA657 },
+    { 0xA659, 0xA659 },
+    { 0xA65B, 0xA65B },
+    { 0xA65D, 0xA65D },
+    { 0xA65F, 0xA65F },
+    { 0xA663, 0xA663 },
+    { 0xA665, 0xA665 },
+    { 0xA667, 0xA667 },
+    { 0xA669, 0xA669 },
+    { 0xA66B, 0xA66B },
+    { 0xA66D, 0xA66D },
+    { 0xA681, 0xA681 },
+    { 0xA683, 0xA683 },
+    { 0xA685, 0xA685 },
+    { 0xA687, 0xA687 },
+    { 0xA689, 0xA689 },
+    { 0xA68B, 0xA68B },
+    { 0xA68D, 0xA68D },
+    { 0xA68F, 0xA68F },
+    { 0xA691, 0xA691 },
+    { 0xA693, 0xA693 },
+    { 0xA695, 0xA695 },
+    { 0xA697, 0xA697 },
+    { 0xA723, 0xA723 },
+    { 0xA725, 0xA725 },
+    { 0xA727, 0xA727 },
+    { 0xA729, 0xA729 },
+    { 0xA72B, 0xA72B },
+    { 0xA72D, 0xA72D },
+    { 0xA72F, 0xA731 },
+    { 0xA733, 0xA733 },
+    { 0xA735, 0xA735 },
+    { 0xA737, 0xA737 },
+    { 0xA739, 0xA739 },
+    { 0xA73B, 0xA73B },
+    { 0xA73D, 0xA73D },
+    { 0xA73F, 0xA73F },
+    { 0xA741, 0xA741 },
+    { 0xA743, 0xA743 },
+    { 0xA745, 0xA745 },
+    { 0xA747, 0xA747 },
+    { 0xA749, 0xA749 },
+    { 0xA74B, 0xA74B },
+    { 0xA74D, 0xA74D },
+    { 0xA74F, 0xA74F },
+    { 0xA751, 0xA751 },
+    { 0xA753, 0xA753 },
+    { 0xA755, 0xA755 },
+    { 0xA757, 0xA757 },
+    { 0xA759, 0xA759 },
+    { 0xA75B, 0xA75B },
+    { 0xA75D, 0xA75D },
+    { 0xA75F, 0xA75F },
+    { 0xA761, 0xA761 },
+    { 0xA763, 0xA763 },
+    { 0xA765, 0xA765 },
+    { 0xA767, 0xA767 },
+    { 0xA769, 0xA769 },
+    { 0xA76B, 0xA76B },
+    { 0xA76D, 0xA76D },
+    { 0xA76F, 0xA778 },
+    { 0xA77A, 0xA77A },
+    { 0xA77C, 0xA77C },
+    { 0xA77F, 0xA77F },
+    { 0xA781, 0xA781 },
+    { 0xA783, 0xA783 },
+    { 0xA785, 0xA785 },
+    { 0xA787, 0xA787 },
+    { 0xA78C, 0xA78C },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFF41, 0xFF5A },
--- a/tests/unictype/test-pr_math.c
+++ b/tests/unictype/test-pr_math.c
@@ -30,18 +30,19 @@
     { 0x03D5, 0x03D5 },
     { 0x03F0, 0x03F1 },
     { 0x03F4, 0x03F6 },
+    { 0x0606, 0x0608 },
     { 0x2016, 0x2016 },
     { 0x2032, 0x2034 },
     { 0x2040, 0x2040 },
     { 0x2044, 0x2044 },
     { 0x2052, 0x2052 },
-    { 0x2061, 0x2063 },
+    { 0x2061, 0x2064 },
     { 0x207A, 0x207E },
     { 0x208A, 0x208E },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
     { 0x20E5, 0x20E6 },
-    { 0x20EC, 0x20EF },
+    { 0x20EB, 0x20EF },
     { 0x2102, 0x2102 },
     { 0x210A, 0x2113 },
     { 0x2115, 0x2115 },
@@ -53,31 +54,42 @@
     { 0x2133, 0x2138 },
     { 0x213C, 0x2149 },
     { 0x214B, 0x214B },
-    { 0x2190, 0x2194 },
-    { 0x219A, 0x219B },
-    { 0x21A0, 0x21A0 },
-    { 0x21A3, 0x21A3 },
-    { 0x21A6, 0x21A6 },
-    { 0x21AE, 0x21AE },
-    { 0x21CE, 0x21CF },
-    { 0x21D2, 0x21D2 },
-    { 0x21D4, 0x21D4 },
+    { 0x2190, 0x21A7 },
+    { 0x21A9, 0x21AE },
+    { 0x21B0, 0x21B1 },
+    { 0x21B6, 0x21B7 },
+    { 0x21BC, 0x21DB },
+    { 0x21DD, 0x21DD },
+    { 0x21E4, 0x21E5 },
     { 0x21F4, 0x22FF },
     { 0x2308, 0x230B },
     { 0x2320, 0x2321 },
     { 0x237C, 0x237C },
-    { 0x239B, 0x23B3 },
+    { 0x239B, 0x23B5 },
     { 0x23B7, 0x23B7 },
     { 0x23D0, 0x23D0 },
-    { 0x23DC, 0x23E1 },
-    { 0x25B7, 0x25B7 },
-    { 0x25C1, 0x25C1 },
+    { 0x23DC, 0x23E2 },
+    { 0x25A0, 0x25A1 },
+    { 0x25AE, 0x25B7 },
+    { 0x25BC, 0x25C1 },
+    { 0x25C6, 0x25C7 },
+    { 0x25CA, 0x25CB },
+    { 0x25CF, 0x25D3 },
+    { 0x25E2, 0x25E2 },
+    { 0x25E4, 0x25E4 },
+    { 0x25E7, 0x25EC },
     { 0x25F8, 0x25FF },
-    { 0x266F, 0x266F },
+    { 0x2605, 0x2606 },
+    { 0x2640, 0x2640 },
+    { 0x2642, 0x2642 },
+    { 0x2660, 0x2663 },
+    { 0x266D, 0x266F },
     { 0x27C0, 0x27CA },
-    { 0x27D0, 0x27EB },
-    { 0x27F0, 0x27FF },
+    { 0x27CC, 0x27CC },
+    { 0x27D0, 0x27FF },
     { 0x2900, 0x2AFF },
+    { 0x2B30, 0x2B44 },
+    { 0x2B47, 0x2B4C },
     { 0xFB29, 0xFB29 },
     { 0xFE61, 0xFE66 },
     { 0xFE68, 0xFE68 },
--- a/tests/unictype/test-pr_numeric.c
+++ b/tests/unictype/test-pr_numeric.c
@@ -32,12 +32,14 @@
     { 0x0B66, 0x0B6F },
     { 0x0BE6, 0x0BF2 },
     { 0x0C66, 0x0C6F },
+    { 0x0C78, 0x0C7E },
     { 0x0CE6, 0x0CEF },
-    { 0x0D66, 0x0D6F },
+    { 0x0D66, 0x0D75 },
     { 0x0E50, 0x0E59 },
     { 0x0ED0, 0x0ED9 },
     { 0x0F20, 0x0F33 },
     { 0x1040, 0x1049 },
+    { 0x1090, 0x1099 },
     { 0x1369, 0x137C },
     { 0x16EE, 0x16F0 },
     { 0x17E0, 0x17E9 },
@@ -46,10 +48,14 @@
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
     { 0x1B50, 0x1B59 },
+    { 0x1BB0, 0x1BB9 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C50, 0x1C59 },
     { 0x2070, 0x2070 },
     { 0x2074, 0x2079 },
     { 0x2080, 0x2089 },
     { 0x2153, 0x2183 },
+    { 0x2185, 0x2188 },
     { 0x2460, 0x249B },
     { 0x24EA, 0x24FF },
     { 0x2776, 0x2793 },
@@ -62,6 +68,17 @@
     { 0x3251, 0x325F },
     { 0x3280, 0x3289 },
     { 0x32B1, 0x32BF },
+    { 0xA620, 0xA629 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA909 },
+    { 0xAA50, 0xAA59 },
+    { 0xF96B, 0xF96B },
+    { 0xF973, 0xF973 },
+    { 0xF978, 0xF978 },
+    { 0xF9B2, 0xF9B2 },
+    { 0xF9D1, 0xF9D1 },
+    { 0xF9D3, 0xF9D3 },
+    { 0xF9FD, 0xF9FD },
     { 0xFF10, 0xFF19 },
     { 0x10107, 0x10133 },
     { 0x10140, 0x10178 },
@@ -77,7 +94,8 @@
     { 0x12434, 0x12455 },
     { 0x12458, 0x12462 },
     { 0x1D360, 0x1D371 },
-    { 0x1D7CE, 0x1D7FF }
+    { 0x1D7CE, 0x1D7FF },
+    { 0x2F890, 0x2F890 }
 
 #define PREDICATE(c) uc_is_property_numeric (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_other_alphabetic.c
+++ b/tests/unictype/test-pr_other_alphabetic.c
@@ -23,7 +23,7 @@
     { 0x05C1, 0x05C2 },
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
-    { 0x0610, 0x0615 },
+    { 0x0610, 0x061A },
     { 0x064B, 0x0657 },
     { 0x0659, 0x065E },
     { 0x0670, 0x0670 },
@@ -47,17 +47,20 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4C },
+    { 0x0A51, 0x0A51 },
     { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0ABE, 0x0AC5 },
     { 0x0AC7, 0x0AC9 },
     { 0x0ACB, 0x0ACC },
     { 0x0AE2, 0x0AE3 },
     { 0x0B01, 0x0B03 },
-    { 0x0B3E, 0x0B43 },
+    { 0x0B3E, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4C },
     { 0x0B56, 0x0B57 },
+    { 0x0B62, 0x0B63 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
@@ -68,6 +71,7 @@
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4C },
     { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
     { 0x0C82, 0x0C83 },
     { 0x0CBE, 0x0CC4 },
     { 0x0CC6, 0x0CC8 },
@@ -75,10 +79,11 @@
     { 0x0CD5, 0x0CD6 },
     { 0x0CE2, 0x0CE3 },
     { 0x0D02, 0x0D03 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3E, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4C },
     { 0x0D57, 0x0D57 },
+    { 0x0D62, 0x0D63 },
     { 0x0D82, 0x0D83 },
     { 0x0DCF, 0x0DD4 },
     { 0x0DD6, 0x0DD6 },
@@ -94,10 +99,15 @@
     { 0x0F71, 0x0F81 },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1036 },
+    { 0x102B, 0x1036 },
     { 0x1038, 0x1038 },
+    { 0x103B, 0x103E },
     { 0x1056, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1062, 0x1062 },
+    { 0x1067, 0x1068 },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x1086 },
     { 0x135F, 0x135F },
     { 0x1712, 0x1713 },
     { 0x1732, 0x1733 },
@@ -112,8 +122,19 @@
     { 0x1A17, 0x1A1B },
     { 0x1B00, 0x1B04 },
     { 0x1B35, 0x1B43 },
+    { 0x1B80, 0x1B82 },
+    { 0x1BA1, 0x1BA9 },
+    { 0x1C24, 0x1C35 },
     { 0x24B6, 0x24E9 },
+    { 0x2DE0, 0x2DFF },
     { 0xA823, 0xA827 },
+    { 0xA880, 0xA881 },
+    { 0xA8B4, 0xA8C3 },
+    { 0xA926, 0xA92A },
+    { 0xA947, 0xA952 },
+    { 0xAA29, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4D },
     { 0xFB1E, 0xFB1E },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
--- a/tests/unictype/test-pr_other_default_ignorable_code_point.c
+++ b/tests/unictype/test-pr_other_default_ignorable_code_point.c
@@ -19,7 +19,7 @@
 
     { 0x034F, 0x034F },
     { 0x115F, 0x1160 },
-    { 0x2064, 0x2069 },
+    { 0x2065, 0x2069 },
     { 0x3164, 0x3164 },
     { 0xFFA0, 0xFFA0 },
     { 0xFFF0, 0xFFF8 },
--- a/tests/unictype/test-pr_other_grapheme_extend.c
+++ b/tests/unictype/test-pr_other_grapheme_extend.c
@@ -30,6 +30,7 @@
     { 0x0DCF, 0x0DCF },
     { 0x0DDF, 0x0DDF },
     { 0x200C, 0x200D },
+    { 0xFF9E, 0xFF9F },
     { 0x1D165, 0x1D165 },
     { 0x1D16E, 0x1D172 }
 
--- a/tests/unictype/test-pr_other_id_continue.c
+++ b/tests/unictype/test-pr_other_id_continue.c
@@ -17,6 +17,8 @@
 
 #include "test-predicate-part1.h"
 
+    { 0x00B7, 0x00B7 },
+    { 0x0387, 0x0387 },
     { 0x1369, 0x1371 }
 
 #define PREDICATE(c) uc_is_property_other_id_continue (c)
--- a/tests/unictype/test-pr_other_lowercase.c
+++ b/tests/unictype/test-pr_other_lowercase.c
@@ -27,7 +27,9 @@
     { 0x1D9B, 0x1DBF },
     { 0x2090, 0x2094 },
     { 0x2170, 0x217F },
-    { 0x24D0, 0x24E9 }
+    { 0x24D0, 0x24E9 },
+    { 0x2C7D, 0x2C7D },
+    { 0xA770, 0xA770 }
 
 #define PREDICATE(c) uc_is_property_other_lowercase (c)
 #include "test-predicate-part2.h"
--- a/tests/unictype/test-pr_other_math.c
+++ b/tests/unictype/test-pr_other_math.c
@@ -25,13 +25,13 @@
     { 0x2016, 0x2016 },
     { 0x2032, 0x2034 },
     { 0x2040, 0x2040 },
-    { 0x2061, 0x2063 },
+    { 0x2061, 0x2064 },
     { 0x207D, 0x207E },
     { 0x208D, 0x208E },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
     { 0x20E5, 0x20E6 },
-    { 0x20EC, 0x20EF },
+    { 0x20EB, 0x20EF },
     { 0x2102, 0x2102 },
     { 0x210A, 0x2113 },
     { 0x2115, 0x2115 },
@@ -43,10 +43,40 @@
     { 0x2133, 0x2138 },
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
+    { 0x2195, 0x2199 },
+    { 0x219C, 0x219F },
+    { 0x21A1, 0x21A2 },
+    { 0x21A4, 0x21A5 },
+    { 0x21A7, 0x21A7 },
+    { 0x21A9, 0x21AD },
+    { 0x21B0, 0x21B1 },
+    { 0x21B6, 0x21B7 },
+    { 0x21BC, 0x21CD },
+    { 0x21D0, 0x21D1 },
+    { 0x21D3, 0x21D3 },
+    { 0x21D5, 0x21DB },
+    { 0x21DD, 0x21DD },
+    { 0x21E4, 0x21E5 },
+    { 0x23B4, 0x23B5 },
     { 0x23B7, 0x23B7 },
     { 0x23D0, 0x23D0 },
+    { 0x23E2, 0x23E2 },
+    { 0x25A0, 0x25A1 },
+    { 0x25AE, 0x25B6 },
+    { 0x25BC, 0x25C0 },
+    { 0x25C6, 0x25C7 },
+    { 0x25CA, 0x25CB },
+    { 0x25CF, 0x25D3 },
+    { 0x25E2, 0x25E2 },
+    { 0x25E4, 0x25E4 },
+    { 0x25E7, 0x25EC },
+    { 0x2605, 0x2606 },
+    { 0x2640, 0x2640 },
+    { 0x2642, 0x2642 },
+    { 0x2660, 0x2663 },
+    { 0x266D, 0x266E },
     { 0x27C5, 0x27C6 },
-    { 0x27E6, 0x27EB },
+    { 0x27E6, 0x27EF },
     { 0x2983, 0x2998 },
     { 0x29D8, 0x29DB },
     { 0x29FC, 0x29FD },
--- a/tests/unictype/test-pr_punctuation.c
+++ b/tests/unictype/test-pr_punctuation.c
@@ -40,6 +40,7 @@
     { 0x05C3, 0x05C3 },
     { 0x05C6, 0x05C6 },
     { 0x05F3, 0x05F4 },
+    { 0x0609, 0x060A },
     { 0x060C, 0x060D },
     { 0x061B, 0x061B },
     { 0x061E, 0x061F },
@@ -55,7 +56,7 @@
     { 0x0F04, 0x0F12 },
     { 0x0F3A, 0x0F3D },
     { 0x0F85, 0x0F85 },
-    { 0x0FD0, 0x0FD1 },
+    { 0x0FD0, 0x0FD4 },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
@@ -70,6 +71,8 @@
     { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
     { 0x1B5A, 0x1B60 },
+    { 0x1C3B, 0x1C3F },
+    { 0x1C7E, 0x1C7F },
     { 0x2010, 0x2027 },
     { 0x2030, 0x2043 },
     { 0x2045, 0x2051 },
@@ -79,14 +82,14 @@
     { 0x2329, 0x232A },
     { 0x2768, 0x2775 },
     { 0x27C5, 0x27C6 },
-    { 0x27E6, 0x27EB },
+    { 0x27E6, 0x27EF },
     { 0x2983, 0x2998 },
     { 0x29D8, 0x29DB },
     { 0x29FC, 0x29FD },
     { 0x2CF9, 0x2CFC },
     { 0x2CFE, 0x2CFF },
-    { 0x2E00, 0x2E17 },
-    { 0x2E1C, 0x2E1D },
+    { 0x2E00, 0x2E2E },
+    { 0x2E30, 0x2E30 },
     { 0x3001, 0x3003 },
     { 0x3008, 0x3011 },
     { 0x3014, 0x301F },
@@ -94,7 +97,14 @@
     { 0x303D, 0x303D },
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
+    { 0xA60D, 0xA60F },
+    { 0xA673, 0xA673 },
+    { 0xA67E, 0xA67E },
     { 0xA874, 0xA877 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA92E, 0xA92F },
+    { 0xA95F, 0xA95F },
+    { 0xAA5C, 0xAA5F },
     { 0xFD3E, 0xFD3F },
     { 0xFE10, 0xFE19 },
     { 0xFE30, 0xFE52 },
@@ -116,6 +126,7 @@
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
     { 0x1091F, 0x1091F },
+    { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
     { 0x12470, 0x12473 }
 
--- a/tests/unictype/test-pr_sentence_terminal.c
+++ b/tests/unictype/test-pr_sentence_terminal.c
@@ -37,10 +37,17 @@
     { 0x1944, 0x1945 },
     { 0x1B5A, 0x1B5B },
     { 0x1B5E, 0x1B5F },
+    { 0x1C3B, 0x1C3C },
+    { 0x1C7E, 0x1C7F },
     { 0x203C, 0x203D },
     { 0x2047, 0x2049 },
+    { 0x2E2E, 0x2E2E },
     { 0x3002, 0x3002 },
+    { 0xA60E, 0xA60F },
     { 0xA876, 0xA877 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA92F, 0xA92F },
+    { 0xAA5D, 0xAA5F },
     { 0xFE52, 0xFE52 },
     { 0xFE56, 0xFE57 },
     { 0xFF01, 0xFF01 },
--- a/tests/unictype/test-pr_soft_dotted.c
+++ b/tests/unictype/test-pr_soft_dotted.c
@@ -34,6 +34,7 @@
     { 0x1ECB, 0x1ECB },
     { 0x2071, 0x2071 },
     { 0x2148, 0x2149 },
+    { 0x2C7C, 0x2C7C },
     { 0x1D422, 0x1D423 },
     { 0x1D456, 0x1D457 },
     { 0x1D48A, 0x1D48B },
--- a/tests/unictype/test-pr_terminal_punctuation.c
+++ b/tests/unictype/test-pr_terminal_punctuation.c
@@ -48,10 +48,17 @@
     { 0x1944, 0x1945 },
     { 0x1B5A, 0x1B5B },
     { 0x1B5D, 0x1B5F },
+    { 0x1C3B, 0x1C3F },
+    { 0x1C7E, 0x1C7F },
     { 0x203C, 0x203D },
     { 0x2047, 0x2049 },
+    { 0x2E2E, 0x2E2E },
     { 0x3001, 0x3002 },
+    { 0xA60D, 0xA60F },
     { 0xA876, 0xA877 },
+    { 0xA8CE, 0xA8CF },
+    { 0xA92F, 0xA92F },
+    { 0xAA5D, 0xAA5F },
     { 0xFE50, 0xFE52 },
     { 0xFE54, 0xFE57 },
     { 0xFF01, 0xFF01 },
--- a/tests/unictype/test-pr_unassigned_code_value.c
+++ b/tests/unictype/test-pr_unassigned_code_value.c
@@ -17,15 +17,12 @@
 
 #include "test-predicate-part1.h"
 
-    { 0x0370, 0x0373 },
-    { 0x0376, 0x0379 },
+    { 0x0378, 0x0379 },
     { 0x037F, 0x0383 },
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x03CF, 0x03CF },
-    { 0x0487, 0x0487 },
-    { 0x0514, 0x0530 },
+    { 0x0524, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
@@ -33,21 +30,18 @@
     { 0x05C8, 0x05CF },
     { 0x05EB, 0x05EF },
     { 0x05F5, 0x05FF },
-    { 0x0604, 0x060A },
-    { 0x0616, 0x061A },
+    { 0x0604, 0x0605 },
     { 0x061C, 0x061D },
     { 0x0620, 0x0620 },
-    { 0x063B, 0x063F },
     { 0x065F, 0x065F },
     { 0x070E, 0x070E },
     { 0x074B, 0x074C },
-    { 0x076E, 0x077F },
     { 0x07B2, 0x07BF },
     { 0x07FB, 0x0900 },
     { 0x093A, 0x093B },
     { 0x094E, 0x094F },
     { 0x0955, 0x0957 },
-    { 0x0971, 0x097A },
+    { 0x0973, 0x097A },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -74,10 +68,11 @@
     { 0x0A3D, 0x0A3D },
     { 0x0A43, 0x0A46 },
     { 0x0A49, 0x0A4A },
-    { 0x0A4E, 0x0A58 },
+    { 0x0A4E, 0x0A50 },
+    { 0x0A52, 0x0A58 },
     { 0x0A5D, 0x0A5D },
     { 0x0A5F, 0x0A65 },
-    { 0x0A75, 0x0A80 },
+    { 0x0A76, 0x0A80 },
     { 0x0A84, 0x0A84 },
     { 0x0A8E, 0x0A8E },
     { 0x0A92, 0x0A92 },
@@ -99,12 +94,12 @@
     { 0x0B31, 0x0B31 },
     { 0x0B34, 0x0B34 },
     { 0x0B3A, 0x0B3B },
-    { 0x0B44, 0x0B46 },
+    { 0x0B45, 0x0B46 },
     { 0x0B49, 0x0B4A },
     { 0x0B4E, 0x0B55 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
-    { 0x0B62, 0x0B65 },
+    { 0x0B64, 0x0B65 },
     { 0x0B72, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
@@ -118,7 +113,8 @@
     { 0x0BBA, 0x0BBD },
     { 0x0BC3, 0x0BC5 },
     { 0x0BC9, 0x0BC9 },
-    { 0x0BCE, 0x0BD6 },
+    { 0x0BCE, 0x0BCF },
+    { 0x0BD1, 0x0BD6 },
     { 0x0BD8, 0x0BE5 },
     { 0x0BFB, 0x0C00 },
     { 0x0C04, 0x0C04 },
@@ -126,13 +122,15 @@
     { 0x0C11, 0x0C11 },
     { 0x0C29, 0x0C29 },
     { 0x0C34, 0x0C34 },
-    { 0x0C3A, 0x0C3D },
+    { 0x0C3A, 0x0C3C },
     { 0x0C45, 0x0C45 },
     { 0x0C49, 0x0C49 },
     { 0x0C4E, 0x0C54 },
-    { 0x0C57, 0x0C5F },
-    { 0x0C62, 0x0C65 },
-    { 0x0C70, 0x0C81 },
+    { 0x0C57, 0x0C57 },
+    { 0x0C5A, 0x0C5F },
+    { 0x0C64, 0x0C65 },
+    { 0x0C70, 0x0C77 },
+    { 0x0C80, 0x0C81 },
     { 0x0C84, 0x0C84 },
     { 0x0C8D, 0x0C8D },
     { 0x0C91, 0x0C91 },
@@ -151,13 +149,14 @@
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
     { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3D },
-    { 0x0D44, 0x0D45 },
+    { 0x0D3A, 0x0D3C },
+    { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
     { 0x0D4E, 0x0D56 },
     { 0x0D58, 0x0D5F },
-    { 0x0D62, 0x0D65 },
-    { 0x0D70, 0x0D81 },
+    { 0x0D64, 0x0D65 },
+    { 0x0D76, 0x0D78 },
+    { 0x0D80, 0x0D81 },
     { 0x0D84, 0x0D84 },
     { 0x0D97, 0x0D99 },
     { 0x0DB2, 0x0DB2 },
@@ -190,18 +189,13 @@
     { 0x0EDA, 0x0EDB },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
-    { 0x0F6B, 0x0F70 },
+    { 0x0F6D, 0x0F70 },
     { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
-    { 0x0FCD, 0x0FCE },
-    { 0x0FD2, 0x0FFF },
-    { 0x1022, 0x1022 },
-    { 0x1028, 0x1028 },
-    { 0x102B, 0x102B },
-    { 0x1033, 0x1035 },
-    { 0x103A, 0x103F },
-    { 0x105A, 0x109F },
+    { 0x0FCD, 0x0FCD },
+    { 0x0FD5, 0x0FFF },
+    { 0x109A, 0x109D },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
     { 0x115A, 0x115E },
@@ -242,7 +236,7 @@
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AA, 0x18FF },
+    { 0x18AB, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
@@ -255,10 +249,13 @@
     { 0x1A1C, 0x1A1D },
     { 0x1A20, 0x1AFF },
     { 0x1B4C, 0x1B4F },
-    { 0x1B7D, 0x1CFF },
-    { 0x1DCB, 0x1DFD },
-    { 0x1E9C, 0x1E9F },
-    { 0x1EFA, 0x1EFF },
+    { 0x1B7D, 0x1B7F },
+    { 0x1BAB, 0x1BAD },
+    { 0x1BBA, 0x1BFF },
+    { 0x1C38, 0x1C3A },
+    { 0x1C4A, 0x1C4C },
+    { 0x1C80, 0x1CFF },
+    { 0x1DE7, 0x1DFD },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
@@ -275,19 +272,20 @@
     { 0x1FF0, 0x1FF1 },
     { 0x1FF5, 0x1FF5 },
     { 0x1FFF, 0x1FFF },
-    { 0x2064, 0x2069 },
+    { 0x2065, 0x2069 },
     { 0x2072, 0x2073 },
     { 0x208F, 0x208F },
     { 0x2095, 0x209F },
     { 0x20B6, 0x20CF },
-    { 0x20F0, 0x20FF },
-    { 0x214F, 0x2152 },
-    { 0x2185, 0x218F },
+    { 0x20F1, 0x20FF },
+    { 0x2150, 0x2152 },
+    { 0x2189, 0x218F },
     { 0x23E8, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269D, 0x269F },
-    { 0x26B3, 0x2700 },
+    { 0x269E, 0x269F },
+    { 0x26BD, 0x26BF },
+    { 0x26C4, 0x2700 },
     { 0x2705, 0x2705 },
     { 0x270A, 0x270B },
     { 0x2728, 0x2728 },
@@ -299,14 +297,14 @@
     { 0x2795, 0x2797 },
     { 0x27B0, 0x27B0 },
     { 0x27BF, 0x27BF },
-    { 0x27CB, 0x27CF },
-    { 0x27EC, 0x27EF },
-    { 0x2B1B, 0x2B1F },
-    { 0x2B24, 0x2BFF },
+    { 0x27CB, 0x27CB },
+    { 0x27CD, 0x27CF },
+    { 0x2B4D, 0x2B4F },
+    { 0x2B55, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C6D, 0x2C73 },
-    { 0x2C78, 0x2C7F },
+    { 0x2C70, 0x2C70 },
+    { 0x2C7E, 0x2C7F },
     { 0x2CEB, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
@@ -319,9 +317,8 @@
     { 0x2DC7, 0x2DC7 },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
-    { 0x2DDF, 0x2DFF },
-    { 0x2E18, 0x2E1B },
-    { 0x2E1E, 0x2E7F },
+    { 0x2DDF, 0x2DDF },
+    { 0x2E31, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
@@ -329,21 +326,32 @@
     { 0x3040, 0x3040 },
     { 0x3097, 0x3098 },
     { 0x3100, 0x3104 },
-    { 0x312D, 0x3130 },
+    { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
     { 0x31B8, 0x31BF },
-    { 0x31D0, 0x31EF },
+    { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
     { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FBC, 0x9FFF },
+    { 0x9FC4, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA6FF },
-    { 0xA71B, 0xA71F },
-    { 0xA722, 0xA7FF },
+    { 0xA4C7, 0xA4FF },
+    { 0xA62C, 0xA63F },
+    { 0xA660, 0xA661 },
+    { 0xA674, 0xA67B },
+    { 0xA698, 0xA6FF },
+    { 0xA78D, 0xA7FA },
     { 0xA82C, 0xA83F },
-    { 0xA878, 0xABFF },
+    { 0xA878, 0xA87F },
+    { 0xA8C5, 0xA8CD },
+    { 0xA8DA, 0xA8FF },
+    { 0xA954, 0xA95E },
+    { 0xA960, 0xA9FF },
+    { 0xAA37, 0xAA3F },
+    { 0xAA4E, 0xAA4F },
+    { 0xAA5A, 0xAA5B },
+    { 0xAA60, 0xABFF },
     { 0xD7A4, 0xD7FF },
     { 0xFA2E, 0xFA2F },
     { 0xFA6B, 0xFA6F },
@@ -361,7 +369,7 @@
     { 0xFDC8, 0xFDCF },
     { 0xFDFE, 0xFDFF },
     { 0xFE1A, 0xFE1F },
-    { 0xFE24, 0xFE2F },
+    { 0xFE27, 0xFE2F },
     { 0xFE53, 0xFE53 },
     { 0xFE67, 0xFE67 },
     { 0xFE6C, 0xFE6F },
@@ -384,7 +392,11 @@
     { 0x100FB, 0x100FF },
     { 0x10103, 0x10106 },
     { 0x10134, 0x10136 },
-    { 0x1018B, 0x102FF },
+    { 0x1018B, 0x1018F },
+    { 0x1019C, 0x101CF },
+    { 0x101FE, 0x1027F },
+    { 0x1029D, 0x1029F },
+    { 0x102D1, 0x102FF },
     { 0x1031F, 0x1031F },
     { 0x10324, 0x1032F },
     { 0x1034B, 0x1037F },
@@ -400,7 +412,8 @@
     { 0x1083D, 0x1083E },
     { 0x10840, 0x108FF },
     { 0x1091A, 0x1091E },
-    { 0x10920, 0x109FF },
+    { 0x1093A, 0x1093E },
+    { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A07, 0x10A0B },
     { 0x10A14, 0x10A14 },
@@ -413,7 +426,7 @@
     { 0x12463, 0x1246F },
     { 0x12474, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
-    { 0x1D127, 0x1D129 },
+    { 0x1D127, 0x1D128 },
     { 0x1D1DE, 0x1D1FF },
     { 0x1D246, 0x1D2FF },
     { 0x1D357, 0x1D35F },
@@ -438,7 +451,9 @@
     { 0x1D551, 0x1D551 },
     { 0x1D6A6, 0x1D6A7 },
     { 0x1D7CC, 0x1D7CD },
-    { 0x1D800, 0x1FFFD },
+    { 0x1D800, 0x1EFFF },
+    { 0x1F02C, 0x1F02F },
+    { 0x1F094, 0x1FFFD },
     { 0x2A6D7, 0x2F7FF },
     { 0x2FA1E, 0x2FFFD },
     { 0x30000, 0x3FFFD },
--- a/tests/unictype/test-pr_unified_ideograph.c
+++ b/tests/unictype/test-pr_unified_ideograph.c
@@ -18,7 +18,7 @@
 #include "test-predicate-part1.h"
 
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xFA0E, 0xFA0F },
     { 0xFA11, 0xFA11 },
     { 0xFA13, 0xFA14 },
--- a/tests/unictype/test-pr_uppercase.c
+++ b/tests/unictype/test-pr_uppercase.c
@@ -161,12 +161,16 @@
     { 0x024A, 0x024A },
     { 0x024C, 0x024C },
     { 0x024E, 0x024E },
+    { 0x0370, 0x0370 },
+    { 0x0372, 0x0372 },
+    { 0x0376, 0x0376 },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x038F },
     { 0x0391, 0x03A1 },
     { 0x03A3, 0x03AB },
+    { 0x03CF, 0x03CF },
     { 0x03D2, 0x03D4 },
     { 0x03D8, 0x03D8 },
     { 0x03DA, 0x03DA },
@@ -269,6 +273,14 @@
     { 0x050E, 0x050E },
     { 0x0510, 0x0510 },
     { 0x0512, 0x0512 },
+    { 0x0514, 0x0514 },
+    { 0x0516, 0x0516 },
+    { 0x0518, 0x0518 },
+    { 0x051A, 0x051A },
+    { 0x051C, 0x051C },
+    { 0x051E, 0x051E },
+    { 0x0520, 0x0520 },
+    { 0x0522, 0x0522 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
@@ -346,6 +358,7 @@
     { 0x1E90, 0x1E90 },
     { 0x1E92, 0x1E92 },
     { 0x1E94, 0x1E94 },
+    { 0x1E9E, 0x1E9E },
     { 0x1EA0, 0x1EA0 },
     { 0x1EA2, 0x1EA2 },
     { 0x1EA4, 0x1EA4 },
@@ -391,6 +404,9 @@
     { 0x1EF4, 0x1EF4 },
     { 0x1EF6, 0x1EF6 },
     { 0x1EF8, 0x1EF8 },
+    { 0x1EFA, 0x1EFA },
+    { 0x1EFC, 0x1EFC },
+    { 0x1EFE, 0x1EFE },
     { 0x1F08, 0x1F0F },
     { 0x1F18, 0x1F1D },
     { 0x1F28, 0x1F2F },
@@ -428,6 +444,8 @@
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
+    { 0x2C6D, 0x2C6F },
+    { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
     { 0x2C80, 0x2C80 },
     { 0x2C82, 0x2C82 },
@@ -479,6 +497,86 @@
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0xA640, 0xA640 },
+    { 0xA642, 0xA642 },
+    { 0xA644, 0xA644 },
+    { 0xA646, 0xA646 },
+    { 0xA648, 0xA648 },
+    { 0xA64A, 0xA64A },
+    { 0xA64C, 0xA64C },
+    { 0xA64E, 0xA64E },
+    { 0xA650, 0xA650 },
+    { 0xA652, 0xA652 },
+    { 0xA654, 0xA654 },
+    { 0xA656, 0xA656 },
+    { 0xA658, 0xA658 },
+    { 0xA65A, 0xA65A },
+    { 0xA65C, 0xA65C },
+    { 0xA65E, 0xA65E },
+    { 0xA662, 0xA662 },
+    { 0xA664, 0xA664 },
+    { 0xA666, 0xA666 },
+    { 0xA668, 0xA668 },
+    { 0xA66A, 0xA66A },
+    { 0xA66C, 0xA66C },
+    { 0xA680, 0xA680 },
+    { 0xA682, 0xA682 },
+    { 0xA684, 0xA684 },
+    { 0xA686, 0xA686 },
+    { 0xA688, 0xA688 },
+    { 0xA68A, 0xA68A },
+    { 0xA68C, 0xA68C },
+    { 0xA68E, 0xA68E },
+    { 0xA690, 0xA690 },
+    { 0xA692, 0xA692 },
+    { 0xA694, 0xA694 },
+    { 0xA696, 0xA696 },
+    { 0xA722, 0xA722 },
+    { 0xA724, 0xA724 },
+    { 0xA726, 0xA726 },
+    { 0xA728, 0xA728 },
+    { 0xA72A, 0xA72A },
+    { 0xA72C, 0xA72C },
+    { 0xA72E, 0xA72E },
+    { 0xA732, 0xA732 },
+    { 0xA734, 0xA734 },
+    { 0xA736, 0xA736 },
+    { 0xA738, 0xA738 },
+    { 0xA73A, 0xA73A },
+    { 0xA73C, 0xA73C },
+    { 0xA73E, 0xA73E },
+    { 0xA740, 0xA740 },
+    { 0xA742, 0xA742 },
+    { 0xA744, 0xA744 },
+    { 0xA746, 0xA746 },
+    { 0xA748, 0xA748 },
+    { 0xA74A, 0xA74A },
+    { 0xA74C, 0xA74C },
+    { 0xA74E, 0xA74E },
+    { 0xA750, 0xA750 },
+    { 0xA752, 0xA752 },
+    { 0xA754, 0xA754 },
+    { 0xA756, 0xA756 },
+    { 0xA758, 0xA758 },
+    { 0xA75A, 0xA75A },
+    { 0xA75C, 0xA75C },
+    { 0xA75E, 0xA75E },
+    { 0xA760, 0xA760 },
+    { 0xA762, 0xA762 },
+    { 0xA764, 0xA764 },
+    { 0xA766, 0xA766 },
+    { 0xA768, 0xA768 },
+    { 0xA76A, 0xA76A },
+    { 0xA76C, 0xA76C },
+    { 0xA76E, 0xA76E },
+    { 0xA779, 0xA779 },
+    { 0xA77B, 0xA77B },
+    { 0xA77D, 0xA77E },
+    { 0xA780, 0xA780 },
+    { 0xA782, 0xA782 },
+    { 0xA784, 0xA784 },
+    { 0xA786, 0xA786 },
+    { 0xA78B, 0xA78B },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 },
     { 0x1D400, 0x1D419 },
--- a/tests/unictype/test-pr_xid_continue.c
+++ b/tests/unictype/test-pr_xid_continue.c
@@ -30,18 +30,18 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
-    { 0x0300, 0x036F },
+    { 0x0300, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037B, 0x037D },
-    { 0x0386, 0x0386 },
-    { 0x0388, 0x038A },
+    { 0x0386, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x0483, 0x0486 },
-    { 0x048A, 0x0513 },
+    { 0x0483, 0x0487 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -52,9 +52,8 @@
     { 0x05C7, 0x05C7 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0610, 0x0615 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x065E },
+    { 0x0610, 0x061A },
+    { 0x0621, 0x065E },
     { 0x0660, 0x0669 },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
@@ -62,8 +61,7 @@
     { 0x06EA, 0x06FC },
     { 0x06FF, 0x06FF },
     { 0x0710, 0x074A },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07B1 },
+    { 0x074D, 0x07B1 },
     { 0x07C0, 0x07F5 },
     { 0x07FA, 0x07FA },
     { 0x0901, 0x0939 },
@@ -71,6 +69,7 @@
     { 0x0950, 0x0954 },
     { 0x0958, 0x0963 },
     { 0x0966, 0x096F },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
@@ -98,9 +97,10 @@
     { 0x0A3E, 0x0A42 },
     { 0x0A47, 0x0A48 },
     { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
     { 0x0A59, 0x0A5C },
     { 0x0A5E, 0x0A5E },
-    { 0x0A66, 0x0A74 },
+    { 0x0A66, 0x0A75 },
     { 0x0A81, 0x0A83 },
     { 0x0A85, 0x0A8D },
     { 0x0A8F, 0x0A91 },
@@ -121,12 +121,12 @@
     { 0x0B2A, 0x0B30 },
     { 0x0B32, 0x0B33 },
     { 0x0B35, 0x0B39 },
-    { 0x0B3C, 0x0B43 },
+    { 0x0B3C, 0x0B44 },
     { 0x0B47, 0x0B48 },
     { 0x0B4B, 0x0B4D },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
-    { 0x0B5F, 0x0B61 },
+    { 0x0B5F, 0x0B63 },
     { 0x0B66, 0x0B6F },
     { 0x0B71, 0x0B71 },
     { 0x0B82, 0x0B83 },
@@ -142,6 +142,7 @@
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0BCA, 0x0BCD },
+    { 0x0BD0, 0x0BD0 },
     { 0x0BD7, 0x0BD7 },
     { 0x0BE6, 0x0BEF },
     { 0x0C01, 0x0C03 },
@@ -150,11 +151,12 @@
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
-    { 0x0C3E, 0x0C44 },
+    { 0x0C3D, 0x0C44 },
     { 0x0C46, 0x0C48 },
     { 0x0C4A, 0x0C4D },
     { 0x0C55, 0x0C56 },
-    { 0x0C60, 0x0C61 },
+    { 0x0C58, 0x0C59 },
+    { 0x0C60, 0x0C63 },
     { 0x0C66, 0x0C6F },
     { 0x0C82, 0x0C83 },
     { 0x0C85, 0x0C8C },
@@ -174,12 +176,13 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
-    { 0x0D3E, 0x0D43 },
+    { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4D },
     { 0x0D57, 0x0D57 },
-    { 0x0D60, 0x0D61 },
+    { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D6F },
+    { 0x0D7A, 0x0D7F },
     { 0x0D82, 0x0D83 },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
@@ -219,19 +222,14 @@
     { 0x0F37, 0x0F37 },
     { 0x0F39, 0x0F39 },
     { 0x0F3E, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F84 },
     { 0x0F86, 0x0F8B },
     { 0x0F90, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
-    { 0x102C, 0x1032 },
-    { 0x1036, 0x1039 },
-    { 0x1040, 0x1049 },
-    { 0x1050, 0x1059 },
+    { 0x1000, 0x1049 },
+    { 0x1050, 0x1099 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -278,7 +276,7 @@
     { 0x180B, 0x180D },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
-    { 0x1880, 0x18A9 },
+    { 0x1880, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
@@ -291,10 +289,13 @@
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B6B, 0x1B73 },
-    { 0x1D00, 0x1DCA },
-    { 0x1DFE, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1B80, 0x1BAA },
+    { 0x1BAE, 0x1BB9 },
+    { 0x1C00, 0x1C37 },
+    { 0x1C40, 0x1C49 },
+    { 0x1C4D, 0x1C7D },
+    { 0x1D00, 0x1DE6 },
+    { 0x1DFE, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -320,7 +321,7 @@
     { 0x2090, 0x2094 },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
-    { 0x20E5, 0x20EF },
+    { 0x20E5, 0x20F0 },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
@@ -333,11 +334,11 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -351,6 +352,7 @@
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
+    { 0x2DE0, 0x2DFF },
     { 0x3005, 0x3007 },
     { 0x3021, 0x302F },
     { 0x3031, 0x3035 },
@@ -360,16 +362,31 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA827 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66F },
+    { 0xA67C, 0xA67D },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA827 },
     { 0xA840, 0xA873 },
+    { 0xA880, 0xA8C4 },
+    { 0xA8D0, 0xA8D9 },
+    { 0xA900, 0xA92D },
+    { 0xA930, 0xA953 },
+    { 0xAA00, 0xAA36 },
+    { 0xAA40, 0xAA4D },
+    { 0xAA50, 0xAA59 },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -389,7 +406,7 @@
     { 0xFD92, 0xFDC7 },
     { 0xFDF0, 0xFDF9 },
     { 0xFE00, 0xFE0F },
-    { 0xFE20, 0xFE23 },
+    { 0xFE20, 0xFE26 },
     { 0xFE33, 0xFE34 },
     { 0xFE4D, 0xFE4F },
     { 0xFE71, 0xFE71 },
@@ -416,6 +433,9 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x101FD, 0x101FD },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -431,6 +451,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A05, 0x10A06 },
     { 0x10A0C, 0x10A13 },
--- a/tests/unictype/test-pr_xid_start.c
+++ b/tests/unictype/test-pr_xid_start.c
@@ -27,23 +27,24 @@
     { 0x00F8, 0x02C1 },
     { 0x02C6, 0x02D1 },
     { 0x02E0, 0x02E4 },
+    { 0x02EC, 0x02EC },
     { 0x02EE, 0x02EE },
+    { 0x0370, 0x0374 },
+    { 0x0376, 0x0377 },
     { 0x037B, 0x037D },
     { 0x0386, 0x0386 },
     { 0x0388, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x03CE },
-    { 0x03D0, 0x03F5 },
+    { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0513 },
+    { 0x048A, 0x0523 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063A },
-    { 0x0640, 0x064A },
+    { 0x0621, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
@@ -53,8 +54,7 @@
     { 0x06FF, 0x06FF },
     { 0x0710, 0x0710 },
     { 0x0712, 0x072F },
-    { 0x074D, 0x076D },
-    { 0x0780, 0x07A5 },
+    { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
@@ -63,6 +63,7 @@
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
+    { 0x0971, 0x0972 },
     { 0x097B, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -114,11 +115,14 @@
     { 0x0BA3, 0x0BA4 },
     { 0x0BA8, 0x0BAA },
     { 0x0BAE, 0x0BB9 },
+    { 0x0BD0, 0x0BD0 },
     { 0x0C05, 0x0C0C },
     { 0x0C0E, 0x0C10 },
     { 0x0C12, 0x0C28 },
     { 0x0C2A, 0x0C33 },
     { 0x0C35, 0x0C39 },
+    { 0x0C3D, 0x0C3D },
+    { 0x0C58, 0x0C59 },
     { 0x0C60, 0x0C61 },
     { 0x0C85, 0x0C8C },
     { 0x0C8E, 0x0C90 },
@@ -132,7 +136,9 @@
     { 0x0D0E, 0x0D10 },
     { 0x0D12, 0x0D28 },
     { 0x0D2A, 0x0D39 },
+    { 0x0D3D, 0x0D3D },
     { 0x0D60, 0x0D61 },
+    { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0D9A, 0x0DB1 },
     { 0x0DB3, 0x0DBB },
@@ -160,12 +166,17 @@
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
-    { 0x0F49, 0x0F6A },
+    { 0x0F49, 0x0F6C },
     { 0x0F88, 0x0F8B },
-    { 0x1000, 0x1021 },
-    { 0x1023, 0x1027 },
-    { 0x1029, 0x102A },
+    { 0x1000, 0x102A },
+    { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
+    { 0x105A, 0x105D },
+    { 0x1061, 0x1061 },
+    { 0x1065, 0x1066 },
+    { 0x106E, 0x1070 },
+    { 0x1075, 0x1081 },
+    { 0x108E, 0x108E },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
@@ -206,6 +217,7 @@
     { 0x17DC, 0x17DC },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
+    { 0x18AA, 0x18AA },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
@@ -214,10 +226,13 @@
     { 0x1A00, 0x1A16 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
+    { 0x1B83, 0x1BA0 },
+    { 0x1BAE, 0x1BAF },
+    { 0x1C00, 0x1C23 },
+    { 0x1C4D, 0x1C4F },
+    { 0x1C5A, 0x1C7D },
     { 0x1D00, 0x1DBF },
-    { 0x1E00, 0x1E9B },
-    { 0x1EA0, 0x1EF9 },
-    { 0x1F00, 0x1F15 },
+    { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
@@ -251,11 +266,11 @@
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
     { 0x214E, 0x214E },
-    { 0x2160, 0x2184 },
+    { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6C },
-    { 0x2C74, 0x2C77 },
+    { 0x2C60, 0x2C6F },
+    { 0x2C71, 0x2C7D },
     { 0x2C80, 0x2CE4 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
@@ -277,19 +292,33 @@
     { 0x309D, 0x309F },
     { 0x30A1, 0x30FA },
     { 0x30FC, 0x30FF },
-    { 0x3105, 0x312C },
+    { 0x3105, 0x312D },
     { 0x3131, 0x318E },
     { 0x31A0, 0x31B7 },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FBB },
+    { 0x4E00, 0x9FC3 },
     { 0xA000, 0xA48C },
-    { 0xA717, 0xA71A },
-    { 0xA800, 0xA801 },
+    { 0xA500, 0xA60C },
+    { 0xA610, 0xA61F },
+    { 0xA62A, 0xA62B },
+    { 0xA640, 0xA65F },
+    { 0xA662, 0xA66E },
+    { 0xA67F, 0xA697 },
+    { 0xA717, 0xA71F },
+    { 0xA722, 0xA788 },
+    { 0xA78B, 0xA78C },
+    { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
+    { 0xA882, 0xA8B3 },
+    { 0xA90A, 0xA925 },
+    { 0xA930, 0xA946 },
+    { 0xAA00, 0xAA28 },
+    { 0xAA40, 0xAA42 },
+    { 0xAA44, 0xAA4B },
     { 0xAC00, 0xD7A3 },
     { 0xF900, 0xFA2D },
     { 0xFA30, 0xFA6A },
@@ -332,6 +361,8 @@
     { 0x10050, 0x1005D },
     { 0x10080, 0x100FA },
     { 0x10140, 0x10174 },
+    { 0x10280, 0x1029C },
+    { 0x102A0, 0x102D0 },
     { 0x10300, 0x1031E },
     { 0x10330, 0x1034A },
     { 0x10380, 0x1039D },
@@ -346,6 +377,7 @@
     { 0x1083C, 0x1083C },
     { 0x1083F, 0x1083F },
     { 0x10900, 0x10915 },
+    { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
--- a/tests/unictype/test-pr_zero_width.c
+++ b/tests/unictype/test-pr_zero_width.c
@@ -24,7 +24,7 @@
     { 0x17B4, 0x17B5 },
     { 0x200B, 0x200F },
     { 0x202A, 0x202E },
-    { 0x2060, 0x2063 },
+    { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },