]> arthur.barton.de Git - netatalk.git/commitdiff
case-conversion is based on Unicode 6.0.0 (BUG: not support surrogate pair yet)
authorHAT <hat@fa2.so-net.ne.jp>
Fri, 8 Apr 2011 13:47:33 +0000 (22:47 +0900)
committerHAT <hat@fa2.so-net.ne.jp>
Fri, 8 Apr 2011 13:47:33 +0000 (22:47 +0900)
contrib/misc/make-casetable.pl [new file with mode: 0755]
include/atalk/unicode.h
libatalk/unicode/.gitignore
libatalk/unicode/Makefile.am
libatalk/unicode/ucs2_casetable.h [deleted file]
libatalk/unicode/utf16_case.c [new file with mode: 0644]
libatalk/unicode/utf16_casetable.h [new file with mode: 0644]
libatalk/unicode/util_unistr.c

diff --git a/contrib/misc/make-casetable.pl b/contrib/misc/make-casetable.pl
new file mode 100755 (executable)
index 0000000..5227150
--- /dev/null
@@ -0,0 +1,314 @@
+#!/usr/bin/perl
+#
+# usage: make-casetable.pl <infile> <outfile1> <outfile2>
+#        make-casetable.pl UnicodeData.txt utf16_casetable.h utf16_case.c
+#
+# (c) 2011 by HAT <hat@fa2.so-net.ne.jp>
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+
+# See
+# http://www.unicode.org/reports/tr44/
+# http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
+
+# One block has 64 chars.
+#
+# BMP
+# block    0 = dummy
+# block    1 = U+0000 - U+003F
+# block    2 = U+0040 - U+007F
+# .....
+# block 1024 = U+FFC0 - U+FFFF
+# block 1025 = dummy
+#
+# Surrogate Pair
+# block  1024 = dummy
+# block  1025 = U+010000 - U+01003F
+# block  1026 = U+010040 - U+01007F
+# .....
+# block 17408 = U+10FFC0 - U+10FFFF
+# block 17409 = dummy
+#
+# Dummy block is for edge detection.
+# If block include upper/lower chars, block_enable[]=1.
+
+use strict;
+use warnings;
+
+our $code0;
+our $Name1;
+our $General_Category2;
+our $Canonical_Combining_Class3;
+our $Bidi_Class4;
+our $Decomposition_Mapping5;
+our $Numeric_Value6;
+our $Numeric_Value7;
+our $Numeric_Value8;
+our $Bidi_Mirrored9;
+our $Unicode_1_Name10;
+our $ISO_Comment11;
+our $Simple_Uppercase_Mapping12;
+our $Simple_Lowercase_Mapping13;
+our $Simple_Titlecase_Mapping14;
+
+our $hex_code0;
+our $Mapping;
+our $hex_Mapping;
+
+our $char;
+our $sp;
+our $block;
+
+our @table;
+our @table_sp;
+
+our @block_enable;
+our @block_enable_sp;
+
+our $table_no;
+our $block_start;
+our $block_end;
+our $char_start;
+our $char_end;
+
+open(CHEADER, ">$ARGV[1]");
+open(CSOURCE, ">$ARGV[2]");
+
+printf (CHEADER "\/\*\n");
+printf (CHEADER "DO NOT EDIT BY HAND\!\!\!\n");
+printf (CHEADER "\n");
+printf (CHEADER "This file is generated by\n");
+printf (CHEADER " contrib/misc/make-casetable.pl %s %s %s\n", $ARGV[0], $ARGV[1], $ARGV[2]);
+printf (CHEADER "\n");
+printf (CHEADER "%s is got from\n", $ARGV[0]);
+printf (CHEADER "http\:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt\n");
+printf (CHEADER "\*\/\n");
+printf (CHEADER "\n");
+
+printf (CSOURCE "\/\*\n");
+printf (CSOURCE "DO NOT EDIT BY HAND\!\!\!\n");
+printf (CSOURCE "\n");
+printf (CSOURCE "This file is generated by\n");
+printf (CSOURCE " contrib/misc/make-casetable.pl %s %s %s\n", $ARGV[0], $ARGV[1], $ARGV[2]);
+printf (CSOURCE "\n");
+printf (CSOURCE "%s is got from\n", $ARGV[0]);
+printf (CSOURCE "http\:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt\n");
+printf (CSOURCE "\*\/\n");
+printf (CSOURCE "\n");
+printf (CSOURCE "\#include \<netatalk\/endian.h\>\n");
+printf (CSOURCE "\#include \<atalk\/unicode.h\>\n");
+printf (CSOURCE "\#include \"%s\"\n", $ARGV[1]);
+printf (CSOURCE "\n");
+
+&make_array("upper");
+&make_array("lower");
+
+printf (CHEADER "\/\* EOF \*\/\n");
+printf (CSOURCE "\/\* EOF \*\/\n");
+
+close(CHEADER);
+close(CSOURCE);
+
+
+###########################################################################
+sub make_array{
+
+    # init table -----------------------------------------------------
+
+    for ($char = 0 ; $char <= 0xFFFF ; $char++) {
+        $table[$char][0] = $char;       # mapped char
+        $table[$char][1] = $char;       # orig char
+        $table[$char][2] = "";          # char name
+    }
+
+    for ($char = 0x10000 ; $char <= 0x10FFFF ; $char++) {
+        $sp = ((0xD800 - (0x10000 >> 10) + ($char >> 10)) << 16)
+            + (0xDC00 + ($char & 0x3FF));
+        $table_sp[$char][0] = $sp;      # mapped surrogate pair
+        $table_sp[$char][1] = $sp;      # orig surrogate pair
+        $table_sp[$char][2] = $char;    # mapped char
+        $table_sp[$char][3] = $char;    # orig char
+        $table_sp[$char][4] = "";       # char name
+    }
+
+    for ($block = 0 ; $block <= 1025 ; $block++) {
+        $block_enable[$block] = 0;
+    }
+
+    for ($block = 1024 ; $block <= 17409 ; $block++) {
+        $block_enable_sp[$block] = 0;
+    }
+
+    # write data to table --------------------------------------------
+
+    open(UNICODEDATA, "<$ARGV[0]");
+
+    while (<UNICODEDATA>) {
+        chop;
+        (
+         $code0,
+         $Name1,
+         $General_Category2,
+         $Canonical_Combining_Class3,
+         $Bidi_Class4,
+         $Decomposition_Mapping5,
+         $Numeric_Value6,
+         $Numeric_Value7,
+         $Numeric_Value8,
+         $Bidi_Mirrored9,
+         $Unicode_1_Name10,
+         $ISO_Comment11,
+         $Simple_Uppercase_Mapping12,
+         $Simple_Lowercase_Mapping13,
+         $Simple_Titlecase_Mapping14
+        ) = split(/\;/);
+
+        if ($_[0] eq "upper") {
+            $Mapping = $Simple_Uppercase_Mapping12;
+        } elsif ($_[0] eq "lower") {
+            $Mapping = $Simple_Lowercase_Mapping13;
+        } else {
+            exit(1);
+        }
+
+        next if ($Mapping eq "");
+
+        $hex_code0 = hex($code0);
+        $hex_Mapping = hex($Mapping);
+
+        if ($hex_code0 <= 0xFFFF) {
+            $table[$hex_code0][0] = $hex_Mapping;
+            #table[$hex_code0][1]   already set
+            $table[$hex_code0][2] = $Name1;
+            $block_enable[($hex_code0 / 64) +1] = 1;
+        } else {
+            $sp = ((0xD800 - (0x10000 >> 10) + ($hex_Mapping >> 10)) << 16)
+                + (0xDC00 + ($hex_Mapping & 0x3FF));
+            $table_sp[$hex_code0][0] = $sp;
+            #table_sp[$hex_code0][1]   already set
+            $table_sp[$hex_code0][2] = $hex_Mapping;
+            #table_sp[$hex_code0][3]   already set
+            $table_sp[$hex_code0][4] = $Name1;
+            $block_enable_sp[($hex_code0 / 64) +1] = 1;
+        }
+    }
+
+    close(UNICODEDATA);
+
+    # array for BMP --------------------------------------------------
+
+    printf(CSOURCE "\/*******************************************************************\n");
+    printf(CSOURCE " Convert a wide character to %s case.\n", $_[0]);
+    printf(CSOURCE "*******************************************************************\/\n");
+    printf(CSOURCE "ucs2\_t to%s\_w\(ucs2\_t val\)\n", $_[0]);
+    printf(CSOURCE "{\n");
+
+    $table_no = 1;
+
+    for ($block = 1 ; $block <= 1024 ; $block++) {
+
+        # rising edge detection
+        if ($block_enable[$block - 1] == 0 && $block_enable[$block] == 1) {
+            $block_start = $block;
+        }
+
+        # falling edge detection
+        if ($block_enable[$block] == 1 && $block_enable[$block + 1] == 0) {
+            $block_end = $block;
+
+            $char_start = ($block_start -1)* 64;
+            $char_end = ($block_end * 64) -1;
+
+            printf(CHEADER "static const u\_int16\_t %s\_table\_%d\[%d\] \= \{\n",
+                   $_[0], $table_no, $char_end - $char_start +1);
+
+            for ($char = $char_start ; $char <= $char_end ; $char++) {
+                printf(CHEADER "  0x%04X, /*U\+%04X*/ /*%s*/\n",
+                       $table[$char][0],
+                       $table[$char][1],
+                       $table[$char][2]
+                    );
+            }
+            printf(CHEADER "\}\;\n");
+            printf(CHEADER "\n");
+
+            printf(CSOURCE "    if \( val \>\= 0x%04X \&\& val \<\= 0x%04X)\n",
+                   $char_start, $char_end);
+            printf(CSOURCE "        return %s\_table\_%d\[val-0x%04X\]\;\n",
+                   $_[0], $table_no, $char_start);
+            printf(CSOURCE "\n");
+
+            $table_no++;
+        }
+    }
+
+    printf(CSOURCE "\treturn \(val\)\;\n");
+    printf(CSOURCE "\}\n");
+    printf(CSOURCE "\n");
+
+    # array for Surrogate Pair ---------------------------------------
+
+    printf(CSOURCE "\/*******************************************************************\n");
+    printf(CSOURCE " Convert a surrogate pair to %s case.\n", $_[0]);
+    printf(CSOURCE "*******************************************************************\/\n");
+    printf(CSOURCE "u\_int32\_t to%s\_sp\(u\_int32\_t val\)\n", $_[0]);
+    printf(CSOURCE "{\n");
+
+    $table_no = 1;
+
+    for ($block = 1025 ; $block <= 17408 ; $block++) {
+
+        # rising edge detection
+        if ((($block_enable_sp[$block - 1] == 0) || ((($block - 1) & 0xF) == 0))
+            && ($block_enable_sp[$block] == 1)) {
+            $block_start = $block;
+        }
+
+        # falling edge detection
+        if (($block_enable_sp[$block] == 1) &&
+            ((($block - 1) & 0xF == 0xF) || ($block_enable_sp[$block + 1] == 0))) {
+            $block_end = $block;
+
+            $char_start = ($block_start -1)* 64;
+            $char_end = ($block_end * 64) -1;
+
+            printf(CHEADER "static const u\_int32\_t %s\_table\_sp\_%d\[%d\] \= \{\n",
+                   $_[0], $table_no, $char_end - $char_start +1);
+
+            for ($char = $char_start ; $char <= $char_end ; $char++) {
+                printf(CHEADER "  0x%08X, /*0x%08X*/ /*U\+%06X*/ /*U\+%06X*/ /*%s*/\n",
+                       $table_sp[$char][0],
+                       $table_sp[$char][1],
+                       $table_sp[$char][2],
+                       $table_sp[$char][3],
+                       $table_sp[$char][4]
+                    );
+            }
+            printf(CHEADER "\}\;\n");
+            printf(CHEADER "\n");
+
+            printf(CSOURCE "    if \( val \>\= 0x%08X \&\& val \<\= 0x%08X)\n",
+                   $table_sp[$char_start][1], $table_sp[$char_end][1]);
+            printf(CSOURCE "        return %s\_table\_sp\_%d\[val-0x%08X\]\;\n",
+                   $_[0], $table_no, $table_sp[$char_start][1]);
+            printf(CSOURCE "\n");
+
+            $table_no++;
+        }
+    }
+
+    printf(CSOURCE "\treturn \(val\)\;\n");
+    printf(CSOURCE "\}\n");
+    printf(CSOURCE "\n");
+}
+
+# EOF
index 1cea56c4d13347481fc687ac379a39d649c4ffaf..325b7ac2bf911275095a0939ce21109f33a953b1 100644 (file)
@@ -92,9 +92,13 @@ extern int atalk_iconv_close (atalk_iconv_t);
 extern struct charset_functions *find_charset_functions (const char *);
 extern int atalk_register_charset (struct charset_functions *);
 
+/* from utf16_case.c */
+extern ucs2_t    toupper_w  (ucs2_t);
+extern u_int32_t toupper_sp (u_int32_t);
+extern ucs2_t    tolower_w  (ucs2_t);
+extern u_int32_t tolower_sp (u_int32_t);
+
 /* from util_unistr.c */
-extern ucs2_t   toupper_w  (ucs2_t);
-extern ucs2_t   tolower_w  (ucs2_t);
 extern int      strupper_w (ucs2_t *);
 extern int      strlower_w (ucs2_t *);
 extern int      islower_w  (ucs2_t);
index 7e49b1630554aeee5b1aa3529f3ae9daceeb009f..90f8ed5209e762a23044ac1dda5217896e70e734 100644 (file)
@@ -5,4 +5,4 @@ Makefile.in
 .deps
 .libs
 .gitignore
-charcnv.o iconv.o utf8.o util_unistr.o
+charcnv.o iconv.o utf16_case.o utf8.o util_unistr.o
index a697dfcdf966a4857fad0965ada03d1f37358124..b56f9f354d754e6fde0c155562bd8536fa7ca1f4 100644 (file)
@@ -12,10 +12,11 @@ libunicode_la_SOURCES = \
        util_unistr.c   \
        iconv.c         \
        charcnv.c       \
-       utf8.c
+       utf8.c          \
+       utf16_case.c
 
 libunicode_la_LIBADD = $(LIBUNICODE_DEPS)
 
-noinst_HEADERS = ucs2_casetable.h precompose.h byteorder.h
+noinst_HEADERS = utf16_casetable.h precompose.h byteorder.h
 
 LIBS=@ICONV_LIBS@
diff --git a/libatalk/unicode/ucs2_casetable.h b/libatalk/unicode/ucs2_casetable.h
deleted file mode 100644 (file)
index 8ac86da..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-static const u_int16_t upcase_table_1[64] = {
-0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,   /* 0x0040-0x0047 */ 
-0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,   /* 0x0048-0x004F */ 
-0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,   /* 0x0050-0x0057 */ 
-0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,   /* 0x0058-0x005F */ 
-0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,   /* 0x0060-0x0067 */ 
-0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,   /* 0x0068-0x006F */ 
-0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,   /* 0x0070-0x0077 */ 
-0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F }; /* 0x0078-0x007F */
-
-static const u_int16_t upcase_table_2[512] = {
-0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,   /* 0x00C0-0x00C7 */ 
-0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,   /* 0x00C8-0x00CF */ 
-0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,   /* 0x00D0-0x00D7 */ 
-0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,   /* 0x00D8-0x00DF */ 
-0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,   /* 0x00E0-0x00E7 */ 
-0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,   /* 0x00E8-0x00EF */ 
-0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00F7,   /* 0x00F0-0x00F7 */ 
-0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x0178,   /* 0x00F8-0x00FF */ 
-0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106,   /* 0x0100-0x0107 */ 
-0x0108, 0x0108, 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E,   /* 0x0108-0x010F */ 
-0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116,   /* 0x0110-0x0117 */ 
-0x0118, 0x0118, 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E,   /* 0x0118-0x011F */ 
-0x0120, 0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126,   /* 0x0120-0x0127 */ 
-0x0128, 0x0128, 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E,   /* 0x0128-0x012F */ 
-0x0130, 0x0131, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136,   /* 0x0130-0x0137 */ 
-0x0138, 0x0139, 0x0139, 0x013B, 0x013B, 0x013D, 0x013D, 0x013F,   /* 0x0138-0x013F */ 
-0x013F, 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147,   /* 0x0140-0x0147 */ 
-0x0147, 0x0149, 0x014A, 0x014A, 0x014C, 0x014C, 0x014E, 0x014E,   /* 0x0148-0x014F */ 
-0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156,   /* 0x0150-0x0157 */ 
-0x0158, 0x0158, 0x015A, 0x015A, 0x015C, 0x015C, 0x015E, 0x015E,   /* 0x0158-0x015F */ 
-0x0160, 0x0160, 0x0162, 0x0162, 0x0164, 0x0164, 0x0166, 0x0166,   /* 0x0160-0x0167 */ 
-0x0168, 0x0168, 0x016A, 0x016A, 0x016C, 0x016C, 0x016E, 0x016E,   /* 0x0168-0x016F */ 
-0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176,   /* 0x0170-0x0177 */ 
-0x0178, 0x0179, 0x0179, 0x017B, 0x017B, 0x017D, 0x017D, 0x017F,   /* 0x0178-0x017F */ 
-0x0180, 0x0181, 0x0182, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187,   /* 0x0180-0x0187 */ 
-0x0187, 0x0189, 0x018A, 0x018B, 0x018B, 0x018D, 0x018E, 0x018F,   /* 0x0188-0x018F */ 
-0x0190, 0x0191, 0x0191, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197,   /* 0x0190-0x0197 */ 
-0x0198, 0x0198, 0x019A, 0x019B, 0x019C, 0x019D, 0x019E, 0x019F,   /* 0x0198-0x019F */ 
-0x01A0, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7,   /* 0x01A0-0x01A7 */ 
-0x01A7, 0x01A9, 0x01AA, 0x01AB, 0x01AC, 0x01AC, 0x01AE, 0x01AF,   /* 0x01A8-0x01AF */ 
-0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B3, 0x01B5, 0x01B5, 0x01B7,   /* 0x01B0-0x01B7 */ 
-0x01B8, 0x01B8, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BE, 0x01BF,   /* 0x01B8-0x01BF */ 
-0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C5, 0x01C4, 0x01C7,   /* 0x01C0-0x01C7 */ 
-0x01C8, 0x01C7, 0x01CA, 0x01CB, 0x01CA, 0x01CD, 0x01CD, 0x01CF,   /* 0x01C8-0x01CF */ 
-0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, 0x01D7,   /* 0x01D0-0x01D7 */ 
-0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x018E, 0x01DE, 0x01DE,   /* 0x01D8-0x01DF */ 
-0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6,   /* 0x01E0-0x01E7 */ 
-0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE,   /* 0x01E8-0x01EF */ 
-0x01F0, 0x01F1, 0x01F2, 0x01F1, 0x01F4, 0x01F4, 0x01F6, 0x01F7,   /* 0x01F0-0x01F7 */ 
-0x01F8, 0x01F9, 0x01FA, 0x01FA, 0x01FC, 0x01FC, 0x01FE, 0x01FE,   /* 0x01F8-0x01FF */ 
-0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206,   /* 0x0200-0x0207 */ 
-0x0208, 0x0208, 0x020A, 0x020A, 0x020C, 0x020C, 0x020E, 0x020E,   /* 0x0208-0x020F */ 
-0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216,   /* 0x0210-0x0217 */ 
-0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E, 0x021F,   /* 0x0218-0x021F */ 
-0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0226, 0x0227,   /* 0x0220-0x0227 */ 
-0x0228, 0x0229, 0x022A, 0x022B, 0x022C, 0x022D, 0x022E, 0x022F,   /* 0x0228-0x022F */ 
-0x0230, 0x0231, 0x0232, 0x0233, 0x0234, 0x0235, 0x0236, 0x0237,   /* 0x0230-0x0237 */ 
-0x0238, 0x0239, 0x023A, 0x023B, 0x023C, 0x023D, 0x023E, 0x023F,   /* 0x0238-0x023F */ 
-0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247,   /* 0x0240-0x0247 */ 
-0x0248, 0x0249, 0x024A, 0x024B, 0x024C, 0x024D, 0x024E, 0x024F,   /* 0x0248-0x024F */ 
-0x0250, 0x0251, 0x0252, 0x0181, 0x0186, 0x0255, 0x0189, 0x018A,   /* 0x0250-0x0257 */ 
-0x0258, 0x018F, 0x025A, 0x0190, 0x025C, 0x025D, 0x025E, 0x025F,   /* 0x0258-0x025F */ 
-0x0193, 0x0261, 0x0262, 0x0194, 0x0264, 0x0265, 0x0266, 0x0267,   /* 0x0260-0x0267 */ 
-0x0197, 0x0196, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x019C,   /* 0x0268-0x026F */ 
-0x0270, 0x0271, 0x019D, 0x0273, 0x0274, 0x019F, 0x0276, 0x0277,   /* 0x0270-0x0277 */ 
-0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F,   /* 0x0278-0x027F */ 
-0x0280, 0x0281, 0x0282, 0x01A9, 0x0284, 0x0285, 0x0286, 0x0287,   /* 0x0280-0x0287 */ 
-0x01AE, 0x0289, 0x01B1, 0x01B2, 0x028C, 0x028D, 0x028E, 0x028F,   /* 0x0288-0x028F */ 
-0x0290, 0x0291, 0x01B7, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297,   /* 0x0290-0x0297 */ 
-0x0298, 0x0299, 0x029A, 0x029B, 0x029C, 0x029D, 0x029E, 0x029F,   /* 0x0298-0x029F */ 
-0x02A0, 0x02A1, 0x02A2, 0x02A3, 0x02A4, 0x02A5, 0x02A6, 0x02A7,   /* 0x02A0-0x02A7 */ 
-0x02A8, 0x02A9, 0x02AA, 0x02AB, 0x02AC, 0x02AD, 0x02AE, 0x02AF,   /* 0x02A8-0x02AF */ 
-0x02B0, 0x02B1, 0x02B2, 0x02B3, 0x02B4, 0x02B5, 0x02B6, 0x02B7,   /* 0x02B0-0x02B7 */ 
-0x02B8, 0x02B9, 0x02BA, 0x02BB, 0x02BC, 0x02BD, 0x02BE, 0x02BF }; /* 0x02B8-0x02BF */
-
-static const u_int16_t upcase_table_3[384] = {
-0x0380, 0x0381, 0x0382, 0x0383, 0x0384, 0x0385, 0x0386, 0x0387,   /* 0x0380-0x0387 */ 
-0x0388, 0x0389, 0x038A, 0x038B, 0x038C, 0x038D, 0x038E, 0x038F,   /* 0x0388-0x038F */ 
-0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,   /* 0x0390-0x0397 */ 
-0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,   /* 0x0398-0x039F */ 
-0x03A0, 0x03A1, 0x03A2, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,   /* 0x03A0-0x03A7 */ 
-0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x0386, 0x0388, 0x0389, 0x038A,   /* 0x03A8-0x03AF */ 
-0x03B0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,   /* 0x03B0-0x03B7 */ 
-0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,   /* 0x03B8-0x03BF */ 
-0x03A0, 0x03A1, 0x03A3, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,   /* 0x03C0-0x03C7 */ 
-0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x038C, 0x038E, 0x038F, 0x03CF,   /* 0x03C8-0x03CF */ 
-0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7,   /* 0x03D0-0x03D7 */ 
-0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC, 0x03DD, 0x03DE, 0x03DF,   /* 0x03D8-0x03DF */ 
-0x03E0, 0x03E1, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6,   /* 0x03E0-0x03E7 */ 
-0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE,   /* 0x03E8-0x03EF */ 
-0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x03F6, 0x03F7,   /* 0x03F0-0x03F7 */ 
-0x03F8, 0x03F9, 0x03FA, 0x03FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF,   /* 0x03F8-0x03FF */ 
-0x0400, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,   /* 0x0400-0x0407 */ 
-0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F,   /* 0x0408-0x040F */ 
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,   /* 0x0410-0x0417 */ 
-0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,   /* 0x0418-0x041F */ 
-0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,   /* 0x0420-0x0427 */ 
-0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,   /* 0x0428-0x042F */ 
-0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,   /* 0x0430-0x0437 */ 
-0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,   /* 0x0438-0x043F */ 
-0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,   /* 0x0440-0x0447 */ 
-0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,   /* 0x0448-0x044F */ 
-0x0450, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,   /* 0x0450-0x0457 */ 
-0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x045D, 0x040E, 0x040F,   /* 0x0458-0x045F */ 
-0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466,   /* 0x0460-0x0467 */ 
-0x0468, 0x0468, 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E,   /* 0x0468-0x046F */ 
-0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476,   /* 0x0470-0x0477 */ 
-0x0478, 0x0478, 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E,   /* 0x0478-0x047F */ 
-0x0480, 0x0480, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,   /* 0x0480-0x0487 */ 
-0x0488, 0x0489, 0x048A, 0x048B, 0x048C, 0x048D, 0x048E, 0x048F,   /* 0x0488-0x048F */ 
-0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496,   /* 0x0490-0x0497 */ 
-0x0498, 0x0498, 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E,   /* 0x0498-0x049F */ 
-0x04A0, 0x04A0, 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6,   /* 0x04A0-0x04A7 */ 
-0x04A8, 0x04A8, 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE,   /* 0x04A8-0x04AF */ 
-0x04B0, 0x04B0, 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6,   /* 0x04B0-0x04B7 */ 
-0x04B8, 0x04B8, 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE,   /* 0x04B8-0x04BF */ 
-0x04C0, 0x04C1, 0x04C1, 0x04C3, 0x04C3, 0x04C5, 0x04C6, 0x04C7,   /* 0x04C0-0x04C7 */ 
-0x04C7, 0x04C9, 0x04CA, 0x04CB, 0x04CB, 0x04CD, 0x04CE, 0x04CF,   /* 0x04C8-0x04CF */ 
-0x04D0, 0x04D0, 0x04D2, 0x04D2, 0x04D4, 0x04D4, 0x04D6, 0x04D6,   /* 0x04D0-0x04D7 */ 
-0x04D8, 0x04D8, 0x04DA, 0x04DA, 0x04DC, 0x04DC, 0x04DE, 0x04DE,   /* 0x04D8-0x04DF */ 
-0x04E0, 0x04E0, 0x04E2, 0x04E2, 0x04E4, 0x04E4, 0x04E6, 0x04E6,   /* 0x04E0-0x04E7 */ 
-0x04E8, 0x04E8, 0x04EA, 0x04EA, 0x04EC, 0x04ED, 0x04EE, 0x04EE,   /* 0x04E8-0x04EF */ 
-0x04F0, 0x04F0, 0x04F2, 0x04F2, 0x04F4, 0x04F4, 0x04F6, 0x04F7,   /* 0x04F0-0x04F7 */ 
-0x04F8, 0x04F8, 0x04FA, 0x04FB, 0x04FC, 0x04FD, 0x04FE, 0x04FF }; /* 0x04F8-0x04FF */
-
-static const u_int16_t upcase_table_4[128] = {
-0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,   /* 0x0540-0x0547 */ 
-0x0548, 0x0549, 0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F,   /* 0x0548-0x054F */ 
-0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0557,   /* 0x0550-0x0557 */ 
-0x0558, 0x0559, 0x055A, 0x055B, 0x055C, 0x055D, 0x055E, 0x055F,   /* 0x0558-0x055F */ 
-0x0560, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,   /* 0x0560-0x0567 */ 
-0x0538, 0x0539, 0x053A, 0x053B, 0x053C, 0x053D, 0x053E, 0x053F,   /* 0x0568-0x056F */ 
-0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,   /* 0x0570-0x0577 */ 
-0x0548, 0x0549, 0x054A, 0x054B, 0x054C, 0x054D, 0x054E, 0x054F,   /* 0x0578-0x057F */ 
-0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x0587,   /* 0x0580-0x0587 */ 
-0x0588, 0x0589, 0x058A, 0x058B, 0x058C, 0x058D, 0x058E, 0x058F,   /* 0x0588-0x058F */ 
-0x0590, 0x0591, 0x0592, 0x0593, 0x0594, 0x0595, 0x0596, 0x0597,   /* 0x0590-0x0597 */ 
-0x0598, 0x0599, 0x059A, 0x059B, 0x059C, 0x059D, 0x059E, 0x059F,   /* 0x0598-0x059F */ 
-0x05A0, 0x05A1, 0x05A2, 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7,   /* 0x05A0-0x05A7 */ 
-0x05A8, 0x05A9, 0x05AA, 0x05AB, 0x05AC, 0x05AD, 0x05AE, 0x05AF,   /* 0x05A8-0x05AF */ 
-0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,   /* 0x05B0-0x05B7 */ 
-0x05B8, 0x05B9, 0x05BA, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF }; /* 0x05B8-0x05BF */
-
-static const u_int16_t upcase_table_5[512] = {
-0x1E00, 0x1E00, 0x1E02, 0x1E02, 0x1E04, 0x1E04, 0x1E06, 0x1E06,   /* 0x1E00-0x1E07 */ 
-0x1E08, 0x1E08, 0x1E0A, 0x1E0A, 0x1E0C, 0x1E0C, 0x1E0E, 0x1E0E,   /* 0x1E08-0x1E0F */ 
-0x1E10, 0x1E10, 0x1E12, 0x1E12, 0x1E14, 0x1E14, 0x1E16, 0x1E16,   /* 0x1E10-0x1E17 */ 
-0x1E18, 0x1E18, 0x1E1A, 0x1E1A, 0x1E1C, 0x1E1C, 0x1E1E, 0x1E1E,   /* 0x1E18-0x1E1F */ 
-0x1E20, 0x1E20, 0x1E22, 0x1E22, 0x1E24, 0x1E24, 0x1E26, 0x1E26,   /* 0x1E20-0x1E27 */ 
-0x1E28, 0x1E28, 0x1E2A, 0x1E2A, 0x1E2C, 0x1E2C, 0x1E2E, 0x1E2E,   /* 0x1E28-0x1E2F */ 
-0x1E30, 0x1E30, 0x1E32, 0x1E32, 0x1E34, 0x1E34, 0x1E36, 0x1E36,   /* 0x1E30-0x1E37 */ 
-0x1E38, 0x1E38, 0x1E3A, 0x1E3A, 0x1E3C, 0x1E3C, 0x1E3E, 0x1E3E,   /* 0x1E38-0x1E3F */ 
-0x1E40, 0x1E40, 0x1E42, 0x1E42, 0x1E44, 0x1E44, 0x1E46, 0x1E46,   /* 0x1E40-0x1E47 */ 
-0x1E48, 0x1E48, 0x1E4A, 0x1E4A, 0x1E4C, 0x1E4C, 0x1E4E, 0x1E4E,   /* 0x1E48-0x1E4F */ 
-0x1E50, 0x1E50, 0x1E52, 0x1E52, 0x1E54, 0x1E54, 0x1E56, 0x1E56,   /* 0x1E50-0x1E57 */ 
-0x1E58, 0x1E58, 0x1E5A, 0x1E5A, 0x1E5C, 0x1E5C, 0x1E5E, 0x1E5E,   /* 0x1E58-0x1E5F */ 
-0x1E60, 0x1E60, 0x1E62, 0x1E62, 0x1E64, 0x1E64, 0x1E66, 0x1E66,   /* 0x1E60-0x1E67 */ 
-0x1E68, 0x1E68, 0x1E6A, 0x1E6A, 0x1E6C, 0x1E6C, 0x1E6E, 0x1E6E,   /* 0x1E68-0x1E6F */ 
-0x1E70, 0x1E70, 0x1E72, 0x1E72, 0x1E74, 0x1E74, 0x1E76, 0x1E76,   /* 0x1E70-0x1E77 */ 
-0x1E78, 0x1E78, 0x1E7A, 0x1E7A, 0x1E7C, 0x1E7C, 0x1E7E, 0x1E7E,   /* 0x1E78-0x1E7F */ 
-0x1E80, 0x1E80, 0x1E82, 0x1E82, 0x1E84, 0x1E84, 0x1E86, 0x1E86,   /* 0x1E80-0x1E87 */ 
-0x1E88, 0x1E88, 0x1E8A, 0x1E8A, 0x1E8C, 0x1E8C, 0x1E8E, 0x1E8E,   /* 0x1E88-0x1E8F */ 
-0x1E90, 0x1E90, 0x1E92, 0x1E92, 0x1E94, 0x1E94, 0x1E96, 0x1E97,   /* 0x1E90-0x1E97 */ 
-0x1E98, 0x1E99, 0x1E9A, 0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F,   /* 0x1E98-0x1E9F */ 
-0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6,   /* 0x1EA0-0x1EA7 */ 
-0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE,   /* 0x1EA8-0x1EAF */ 
-0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6,   /* 0x1EB0-0x1EB7 */ 
-0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE,   /* 0x1EB8-0x1EBF */ 
-0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6,   /* 0x1EC0-0x1EC7 */ 
-0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE,   /* 0x1EC8-0x1ECF */ 
-0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6,   /* 0x1ED0-0x1ED7 */ 
-0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE,   /* 0x1ED8-0x1EDF */ 
-0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6,   /* 0x1EE0-0x1EE7 */ 
-0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE,   /* 0x1EE8-0x1EEF */ 
-0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6,   /* 0x1EF0-0x1EF7 */ 
-0x1EF8, 0x1EF8, 0x1EFA, 0x1EFB, 0x1EFC, 0x1EFD, 0x1EFE, 0x1EFF,   /* 0x1EF8-0x1EFF */ 
-0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,   /* 0x1F00-0x1F07 */ 
-0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,   /* 0x1F08-0x1F0F */ 
-0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F16, 0x1F17,   /* 0x1F10-0x1F17 */ 
-0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F1E, 0x1F1F,   /* 0x1F18-0x1F1F */ 
-0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,   /* 0x1F20-0x1F27 */ 
-0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,   /* 0x1F28-0x1F2F */ 
-0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,   /* 0x1F30-0x1F37 */ 
-0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,   /* 0x1F38-0x1F3F */ 
-0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F46, 0x1F47,   /* 0x1F40-0x1F47 */ 
-0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F4E, 0x1F4F,   /* 0x1F48-0x1F4F */ 
-0x1F50, 0x1F59, 0x1F52, 0x1F5B, 0x1F54, 0x1F5D, 0x1F56, 0x1F5F,   /* 0x1F50-0x1F57 */ 
-0x1F58, 0x1F59, 0x1F5A, 0x1F5B, 0x1F5C, 0x1F5D, 0x1F5E, 0x1F5F,   /* 0x1F58-0x1F5F */ 
-0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,   /* 0x1F60-0x1F67 */ 
-0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,   /* 0x1F68-0x1F6F */ 
-0x1FBA, 0x1FBB, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FDA, 0x1FDB,   /* 0x1F70-0x1F77 */ 
-0x1FF8, 0x1FF9, 0x1FEA, 0x1FEB, 0x1FFA, 0x1FFB, 0x1F7E, 0x1F7F,   /* 0x1F78-0x1F7F */ 
-0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,   /* 0x1F80-0x1F87 */ 
-0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,   /* 0x1F88-0x1F8F */ 
-0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,   /* 0x1F90-0x1F97 */ 
-0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,   /* 0x1F98-0x1F9F */ 
-0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,   /* 0x1FA0-0x1FA7 */ 
-0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,   /* 0x1FA8-0x1FAF */ 
-0x1FB8, 0x1FB9, 0x1FB2, 0x1FB3, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7,   /* 0x1FB0-0x1FB7 */ 
-0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x1FBE, 0x1FBF,   /* 0x1FB8-0x1FBF */ 
-0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7,   /* 0x1FC0-0x1FC7 */ 
-0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF,   /* 0x1FC8-0x1FCF */ 
-0x1FD8, 0x1FD9, 0x1FD2, 0x1FD3, 0x1FD4, 0x1FD5, 0x1FD6, 0x1FD7,   /* 0x1FD0-0x1FD7 */ 
-0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FDC, 0x1FDD, 0x1FDE, 0x1FDF,   /* 0x1FD8-0x1FDF */ 
-0x1FE8, 0x1FE9, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FEC, 0x1FE6, 0x1FE7,   /* 0x1FE0-0x1FE7 */ 
-0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF,   /* 0x1FE8-0x1FEF */ 
-0x1FF0, 0x1FF1, 0x1FF2, 0x1FF3, 0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7,   /* 0x1FF0-0x1FF7 */ 
-0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x1FFF }; /* 0x1FF8-0x1FFF */
-
-static const u_int16_t upcase_table_6[64] = {
-0x2140, 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147,   /* 0x2140-0x2147 */ 
-0x2148, 0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F,   /* 0x2148-0x214F */ 
-0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157,   /* 0x2150-0x2157 */ 
-0x2158, 0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F,   /* 0x2158-0x215F */ 
-0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,   /* 0x2160-0x2167 */ 
-0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F,   /* 0x2168-0x216F */ 
-0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,   /* 0x2170-0x2177 */ 
-0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F }; /* 0x2178-0x217F */
-
-static const u_int16_t upcase_table_7[64] = {
-0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5, 0x24C6, 0x24C7,   /* 0x24C0-0x24C7 */ 
-0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD, 0x24CE, 0x24CF,   /* 0x24C8-0x24CF */ 
-0x24B6, 0x24B7, 0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD,   /* 0x24D0-0x24D7 */ 
-0x24BE, 0x24BF, 0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5,   /* 0x24D8-0x24DF */ 
-0x24C6, 0x24C7, 0x24C8, 0x24C9, 0x24CA, 0x24CB, 0x24CC, 0x24CD,   /* 0x24E0-0x24E7 */ 
-0x24CE, 0x24CF, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF,   /* 0x24E8-0x24EF */ 
-0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, 0x24F7,   /* 0x24F0-0x24F7 */ 
-0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x24FF }; /* 0x24F8-0x24FF */
-
-static const u_int16_t upcase_table_8[64] = {
-0xFF40, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27,   /* 0xFF40-0xFF47 */ 
-0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F,   /* 0xFF48-0xFF4F */ 
-0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37,   /* 0xFF50-0xFF57 */ 
-0xFF38, 0xFF39, 0xFF3A, 0xFF5B, 0xFF5C, 0xFF5D, 0xFF5E, 0xFF5F,   /* 0xFF58-0xFF5F */ 
-0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67,   /* 0xFF60-0xFF67 */ 
-0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F,   /* 0xFF68-0xFF6F */ 
-0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77,   /* 0xFF70-0xFF77 */ 
-0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F }; /* 0xFF78-0xFF7F */
-
-
-
-static const u_int16_t lowcase_table_1[64] = {
-0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,   /* 0x0040-0x0047 */ 
-0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,   /* 0x0048-0x004F */ 
-0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,   /* 0x0050-0x0057 */ 
-0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,   /* 0x0058-0x005F */ 
-0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,   /* 0x0060-0x0067 */ 
-0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,   /* 0x0068-0x006F */ 
-0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,   /* 0x0070-0x0077 */ 
-0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F }; /* 0x0078-0x007F */
-
-static const u_int16_t lowcase_table_2[384] = {
-0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,   /* 0x00C0-0x00C7 */ 
-0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,   /* 0x00C8-0x00CF */ 
-0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00D7,   /* 0x00D0-0x00D7 */ 
-0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00DF,   /* 0x00D8-0x00DF */ 
-0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,   /* 0x00E0-0x00E7 */ 
-0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,   /* 0x00E8-0x00EF */ 
-0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,   /* 0x00F0-0x00F7 */ 
-0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF,   /* 0x00F8-0x00FF */ 
-0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107,   /* 0x0100-0x0107 */ 
-0x0109, 0x0109, 0x010B, 0x010B, 0x010D, 0x010D, 0x010F, 0x010F,   /* 0x0108-0x010F */ 
-0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117,   /* 0x0110-0x0117 */ 
-0x0119, 0x0119, 0x011B, 0x011B, 0x011D, 0x011D, 0x011F, 0x011F,   /* 0x0118-0x011F */ 
-0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127,   /* 0x0120-0x0127 */ 
-0x0129, 0x0129, 0x012B, 0x012B, 0x012D, 0x012D, 0x012F, 0x012F,   /* 0x0128-0x012F */ 
-0x0130, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0137,   /* 0x0130-0x0137 */ 
-0x0138, 0x013A, 0x013A, 0x013C, 0x013C, 0x013E, 0x013E, 0x0140,   /* 0x0138-0x013F */ 
-0x0140, 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148,   /* 0x0140-0x0147 */ 
-0x0148, 0x0149, 0x014B, 0x014B, 0x014D, 0x014D, 0x014F, 0x014F,   /* 0x0148-0x014F */ 
-0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157,   /* 0x0150-0x0157 */ 
-0x0159, 0x0159, 0x015B, 0x015B, 0x015D, 0x015D, 0x015F, 0x015F,   /* 0x0158-0x015F */ 
-0x0161, 0x0161, 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167,   /* 0x0160-0x0167 */ 
-0x0169, 0x0169, 0x016B, 0x016B, 0x016D, 0x016D, 0x016F, 0x016F,   /* 0x0168-0x016F */ 
-0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177,   /* 0x0170-0x0177 */ 
-0x00FF, 0x017A, 0x017A, 0x017C, 0x017C, 0x017E, 0x017E, 0x017F,   /* 0x0178-0x017F */ 
-0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188,   /* 0x0180-0x0187 */ 
-0x0188, 0x0256, 0x0257, 0x018C, 0x018C, 0x018D, 0x01DD, 0x0259,   /* 0x0188-0x018F */ 
-0x025B, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268,   /* 0x0190-0x0197 */ 
-0x0199, 0x0199, 0x019A, 0x019B, 0x026F, 0x0272, 0x019E, 0x0275,   /* 0x0198-0x019F */ 
-0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x01A6, 0x01A8,   /* 0x01A0-0x01A7 */ 
-0x01A8, 0x0283, 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x0288, 0x01B0,   /* 0x01A8-0x01AF */ 
-0x01B0, 0x028A, 0x028B, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x0292,   /* 0x01B0-0x01B7 */ 
-0x01B9, 0x01B9, 0x01BA, 0x01BB, 0x01BD, 0x01BD, 0x01BE, 0x01BF,   /* 0x01B8-0x01BF */ 
-0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C6, 0x01C5, 0x01C6, 0x01C9,   /* 0x01C0-0x01C7 */ 
-0x01C8, 0x01C9, 0x01CC, 0x01CB, 0x01CC, 0x01CE, 0x01CE, 0x01D0,   /* 0x01C8-0x01CF */ 
-0x01D0, 0x01D2, 0x01D2, 0x01D4, 0x01D4, 0x01D6, 0x01D6, 0x01D8,   /* 0x01D0-0x01D7 */ 
-0x01D8, 0x01DA, 0x01DA, 0x01DC, 0x01DC, 0x01DD, 0x01DF, 0x01DF,   /* 0x01D8-0x01DF */ 
-0x01E1, 0x01E1, 0x01E3, 0x01E3, 0x01E5, 0x01E5, 0x01E7, 0x01E7,   /* 0x01E0-0x01E7 */ 
-0x01E9, 0x01E9, 0x01EB, 0x01EB, 0x01ED, 0x01ED, 0x01EF, 0x01EF,   /* 0x01E8-0x01EF */ 
-0x01F0, 0x01F3, 0x01F2, 0x01F3, 0x01F5, 0x01F5, 0x01F6, 0x01F7,   /* 0x01F0-0x01F7 */ 
-0x01F8, 0x01F9, 0x01FB, 0x01FB, 0x01FD, 0x01FD, 0x01FF, 0x01FF,   /* 0x01F8-0x01FF */ 
-0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207,   /* 0x0200-0x0207 */ 
-0x0209, 0x0209, 0x020B, 0x020B, 0x020D, 0x020D, 0x020F, 0x020F,   /* 0x0208-0x020F */ 
-0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217,   /* 0x0210-0x0217 */ 
-0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E, 0x021F,   /* 0x0218-0x021F */ 
-0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0226, 0x0227,   /* 0x0220-0x0227 */ 
-0x0228, 0x0229, 0x022A, 0x022B, 0x022C, 0x022D, 0x022E, 0x022F,   /* 0x0228-0x022F */ 
-0x0230, 0x0231, 0x0232, 0x0233, 0x0234, 0x0235, 0x0236, 0x0237,   /* 0x0230-0x0237 */ 
-0x0238, 0x0239, 0x023A, 0x023B, 0x023C, 0x023D, 0x023E, 0x023F }; /* 0x0238-0x023F */
-
-static const u_int16_t lowcase_table_3[512] = {
-0x0380, 0x0381, 0x0382, 0x0383, 0x0384, 0x0385, 0x03AC, 0x0387,   /* 0x0380-0x0387 */ 
-0x03AD, 0x03AE, 0x03AF, 0x038B, 0x03CC, 0x038D, 0x03CD, 0x03CE,   /* 0x0388-0x038F */ 
-0x0390, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,   /* 0x0390-0x0397 */ 
-0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,   /* 0x0398-0x039F */ 
-0x03C0, 0x03C1, 0x03A2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,   /* 0x03A0-0x03A7 */ 
-0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,   /* 0x03A8-0x03AF */ 
-0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,   /* 0x03B0-0x03B7 */ 
-0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,   /* 0x03B8-0x03BF */ 
-0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,   /* 0x03C0-0x03C7 */ 
-0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x03CF,   /* 0x03C8-0x03CF */ 
-0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7,   /* 0x03D0-0x03D7 */ 
-0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC, 0x03DD, 0x03DE, 0x03DF,   /* 0x03D8-0x03DF */ 
-0x03E0, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7,   /* 0x03E0-0x03E7 */ 
-0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03EF,   /* 0x03E8-0x03EF */ 
-0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03F4, 0x03F5, 0x03F6, 0x03F7,   /* 0x03F0-0x03F7 */ 
-0x03F8, 0x03F9, 0x03FA, 0x03FB, 0x03FC, 0x03FD, 0x03FE, 0x03FF,   /* 0x03F8-0x03FF */ 
-0x0400, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,   /* 0x0400-0x0407 */ 
-0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x040D, 0x045E, 0x045F,   /* 0x0408-0x040F */ 
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,   /* 0x0410-0x0417 */ 
-0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,   /* 0x0418-0x041F */ 
-0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,   /* 0x0420-0x0427 */ 
-0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,   /* 0x0428-0x042F */ 
-0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,   /* 0x0430-0x0437 */ 
-0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,   /* 0x0438-0x043F */ 
-0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,   /* 0x0440-0x0447 */ 
-0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,   /* 0x0448-0x044F */ 
-0x0450, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,   /* 0x0450-0x0457 */ 
-0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045D, 0x045E, 0x045F,   /* 0x0458-0x045F */ 
-0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467,   /* 0x0460-0x0467 */ 
-0x0469, 0x0469, 0x046B, 0x046B, 0x046D, 0x046D, 0x046F, 0x046F,   /* 0x0468-0x046F */ 
-0x0471, 0x0471, 0x0473, 0x0473, 0x0475, 0x0475, 0x0477, 0x0477,   /* 0x0470-0x0477 */ 
-0x0479, 0x0479, 0x047B, 0x047B, 0x047D, 0x047D, 0x047F, 0x047F,   /* 0x0478-0x047F */ 
-0x0481, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,   /* 0x0480-0x0487 */ 
-0x0488, 0x0489, 0x048A, 0x048B, 0x048C, 0x048D, 0x048E, 0x048F,   /* 0x0488-0x048F */ 
-0x0491, 0x0491, 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497,   /* 0x0490-0x0497 */ 
-0x0499, 0x0499, 0x049B, 0x049B, 0x049D, 0x049D, 0x049F, 0x049F,   /* 0x0498-0x049F */ 
-0x04A1, 0x04A1, 0x04A3, 0x04A3, 0x04A5, 0x04A5, 0x04A7, 0x04A7,   /* 0x04A0-0x04A7 */ 
-0x04A9, 0x04A9, 0x04AB, 0x04AB, 0x04AD, 0x04AD, 0x04AF, 0x04AF,   /* 0x04A8-0x04AF */ 
-0x04B1, 0x04B1, 0x04B3, 0x04B3, 0x04B5, 0x04B5, 0x04B7, 0x04B7,   /* 0x04B0-0x04B7 */ 
-0x04B9, 0x04B9, 0x04BB, 0x04BB, 0x04BD, 0x04BD, 0x04BF, 0x04BF,   /* 0x04B8-0x04BF */ 
-0x04C0, 0x04C2, 0x04C2, 0x04C4, 0x04C4, 0x04C5, 0x04C6, 0x04C8,   /* 0x04C0-0x04C7 */ 
-0x04C8, 0x04C9, 0x04CA, 0x04CC, 0x04CC, 0x04CD, 0x04CE, 0x04CF,   /* 0x04C8-0x04CF */ 
-0x04D1, 0x04D1, 0x04D3, 0x04D3, 0x04D5, 0x04D5, 0x04D7, 0x04D7,   /* 0x04D0-0x04D7 */ 
-0x04D9, 0x04D9, 0x04DB, 0x04DB, 0x04DD, 0x04DD, 0x04DF, 0x04DF,   /* 0x04D8-0x04DF */ 
-0x04E1, 0x04E1, 0x04E3, 0x04E3, 0x04E5, 0x04E5, 0x04E7, 0x04E7,   /* 0x04E0-0x04E7 */ 
-0x04E9, 0x04E9, 0x04EB, 0x04EB, 0x04EC, 0x04ED, 0x04EF, 0x04EF,   /* 0x04E8-0x04EF */ 
-0x04F1, 0x04F1, 0x04F3, 0x04F3, 0x04F5, 0x04F5, 0x04F6, 0x04F7,   /* 0x04F0-0x04F7 */ 
-0x04F9, 0x04F9, 0x04FA, 0x04FB, 0x04FC, 0x04FD, 0x04FE, 0x04FF,   /* 0x04F8-0x04FF */ 
-0x0500, 0x0501, 0x0502, 0x0503, 0x0504, 0x0505, 0x0506, 0x0507,   /* 0x0500-0x0507 */ 
-0x0508, 0x0509, 0x050A, 0x050B, 0x050C, 0x050D, 0x050E, 0x050F,   /* 0x0508-0x050F */ 
-0x0510, 0x0511, 0x0512, 0x0513, 0x0514, 0x0515, 0x0516, 0x0517,   /* 0x0510-0x0517 */ 
-0x0518, 0x0519, 0x051A, 0x051B, 0x051C, 0x051D, 0x051E, 0x051F,   /* 0x0518-0x051F */ 
-0x0520, 0x0521, 0x0522, 0x0523, 0x0524, 0x0525, 0x0526, 0x0527,   /* 0x0520-0x0527 */ 
-0x0528, 0x0529, 0x052A, 0x052B, 0x052C, 0x052D, 0x052E, 0x052F,   /* 0x0528-0x052F */ 
-0x0530, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,   /* 0x0530-0x0537 */ 
-0x0568, 0x0569, 0x056A, 0x056B, 0x056C, 0x056D, 0x056E, 0x056F,   /* 0x0538-0x053F */ 
-0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,   /* 0x0540-0x0547 */ 
-0x0578, 0x0579, 0x057A, 0x057B, 0x057C, 0x057D, 0x057E, 0x057F,   /* 0x0548-0x054F */ 
-0x0580, 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0557,   /* 0x0550-0x0557 */ 
-0x0558, 0x0559, 0x055A, 0x055B, 0x055C, 0x055D, 0x055E, 0x055F,   /* 0x0558-0x055F */ 
-0x0560, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, 0x0566, 0x0567,   /* 0x0560-0x0567 */ 
-0x0568, 0x0569, 0x056A, 0x056B, 0x056C, 0x056D, 0x056E, 0x056F,   /* 0x0568-0x056F */ 
-0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577,   /* 0x0570-0x0577 */ 
-0x0578, 0x0579, 0x057A, 0x057B, 0x057C, 0x057D, 0x057E, 0x057F }; /* 0x0578-0x057F */
-
-static const u_int16_t lowcase_table_4[512] = {
-0x1E01, 0x1E01, 0x1E03, 0x1E03, 0x1E05, 0x1E05, 0x1E07, 0x1E07,   /* 0x1E00-0x1E07 */ 
-0x1E09, 0x1E09, 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, 0x1E0F, 0x1E0F,   /* 0x1E08-0x1E0F */ 
-0x1E11, 0x1E11, 0x1E13, 0x1E13, 0x1E15, 0x1E15, 0x1E17, 0x1E17,   /* 0x1E10-0x1E17 */ 
-0x1E19, 0x1E19, 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, 0x1E1F, 0x1E1F,   /* 0x1E18-0x1E1F */ 
-0x1E21, 0x1E21, 0x1E23, 0x1E23, 0x1E25, 0x1E25, 0x1E27, 0x1E27,   /* 0x1E20-0x1E27 */ 
-0x1E29, 0x1E29, 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, 0x1E2F, 0x1E2F,   /* 0x1E28-0x1E2F */ 
-0x1E31, 0x1E31, 0x1E33, 0x1E33, 0x1E35, 0x1E35, 0x1E37, 0x1E37,   /* 0x1E30-0x1E37 */ 
-0x1E39, 0x1E39, 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, 0x1E3F, 0x1E3F,   /* 0x1E38-0x1E3F */ 
-0x1E41, 0x1E41, 0x1E43, 0x1E43, 0x1E45, 0x1E45, 0x1E47, 0x1E47,   /* 0x1E40-0x1E47 */ 
-0x1E49, 0x1E49, 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, 0x1E4F, 0x1E4F,   /* 0x1E48-0x1E4F */ 
-0x1E51, 0x1E51, 0x1E53, 0x1E53, 0x1E55, 0x1E55, 0x1E57, 0x1E57,   /* 0x1E50-0x1E57 */ 
-0x1E59, 0x1E59, 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, 0x1E5F, 0x1E5F,   /* 0x1E58-0x1E5F */ 
-0x1E61, 0x1E61, 0x1E63, 0x1E63, 0x1E65, 0x1E65, 0x1E67, 0x1E67,   /* 0x1E60-0x1E67 */ 
-0x1E69, 0x1E69, 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, 0x1E6F, 0x1E6F,   /* 0x1E68-0x1E6F */ 
-0x1E71, 0x1E71, 0x1E73, 0x1E73, 0x1E75, 0x1E75, 0x1E77, 0x1E77,   /* 0x1E70-0x1E77 */ 
-0x1E79, 0x1E79, 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, 0x1E7F, 0x1E7F,   /* 0x1E78-0x1E7F */ 
-0x1E81, 0x1E81, 0x1E83, 0x1E83, 0x1E85, 0x1E85, 0x1E87, 0x1E87,   /* 0x1E80-0x1E87 */ 
-0x1E89, 0x1E89, 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, 0x1E8F, 0x1E8F,   /* 0x1E88-0x1E8F */ 
-0x1E91, 0x1E91, 0x1E93, 0x1E93, 0x1E95, 0x1E95, 0x1E96, 0x1E97,   /* 0x1E90-0x1E97 */ 
-0x1E98, 0x1E99, 0x1E9A, 0x1E9B, 0x1E9C, 0x1E9D, 0x1E9E, 0x1E9F,   /* 0x1E98-0x1E9F */ 
-0x1EA1, 0x1EA1, 0x1EA3, 0x1EA3, 0x1EA5, 0x1EA5, 0x1EA7, 0x1EA7,   /* 0x1EA0-0x1EA7 */ 
-0x1EA9, 0x1EA9, 0x1EAB, 0x1EAB, 0x1EAD, 0x1EAD, 0x1EAF, 0x1EAF,   /* 0x1EA8-0x1EAF */ 
-0x1EB1, 0x1EB1, 0x1EB3, 0x1EB3, 0x1EB5, 0x1EB5, 0x1EB7, 0x1EB7,   /* 0x1EB0-0x1EB7 */ 
-0x1EB9, 0x1EB9, 0x1EBB, 0x1EBB, 0x1EBD, 0x1EBD, 0x1EBF, 0x1EBF,   /* 0x1EB8-0x1EBF */ 
-0x1EC1, 0x1EC1, 0x1EC3, 0x1EC3, 0x1EC5, 0x1EC5, 0x1EC7, 0x1EC7,   /* 0x1EC0-0x1EC7 */ 
-0x1EC9, 0x1EC9, 0x1ECB, 0x1ECB, 0x1ECD, 0x1ECD, 0x1ECF, 0x1ECF,   /* 0x1EC8-0x1ECF */ 
-0x1ED1, 0x1ED1, 0x1ED3, 0x1ED3, 0x1ED5, 0x1ED5, 0x1ED7, 0x1ED7,   /* 0x1ED0-0x1ED7 */ 
-0x1ED9, 0x1ED9, 0x1EDB, 0x1EDB, 0x1EDD, 0x1EDD, 0x1EDF, 0x1EDF,   /* 0x1ED8-0x1EDF */ 
-0x1EE1, 0x1EE1, 0x1EE3, 0x1EE3, 0x1EE5, 0x1EE5, 0x1EE7, 0x1EE7,   /* 0x1EE0-0x1EE7 */ 
-0x1EE9, 0x1EE9, 0x1EEB, 0x1EEB, 0x1EED, 0x1EED, 0x1EEF, 0x1EEF,   /* 0x1EE8-0x1EEF */ 
-0x1EF1, 0x1EF1, 0x1EF3, 0x1EF3, 0x1EF5, 0x1EF5, 0x1EF7, 0x1EF7,   /* 0x1EF0-0x1EF7 */ 
-0x1EF9, 0x1EF9, 0x1EFA, 0x1EFB, 0x1EFC, 0x1EFD, 0x1EFE, 0x1EFF,   /* 0x1EF8-0x1EFF */ 
-0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,   /* 0x1F00-0x1F07 */ 
-0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,   /* 0x1F08-0x1F0F */ 
-0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F16, 0x1F17,   /* 0x1F10-0x1F17 */ 
-0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F1E, 0x1F1F,   /* 0x1F18-0x1F1F */ 
-0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,   /* 0x1F20-0x1F27 */ 
-0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,   /* 0x1F28-0x1F2F */ 
-0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,   /* 0x1F30-0x1F37 */ 
-0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,   /* 0x1F38-0x1F3F */ 
-0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x1F46, 0x1F47,   /* 0x1F40-0x1F47 */ 
-0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x1F4E, 0x1F4F,   /* 0x1F48-0x1F4F */ 
-0x1F50, 0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57,   /* 0x1F50-0x1F57 */ 
-0x1F58, 0x1F51, 0x1F5A, 0x1F53, 0x1F5C, 0x1F55, 0x1F5E, 0x1F57,   /* 0x1F58-0x1F5F */ 
-0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,   /* 0x1F60-0x1F67 */ 
-0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,   /* 0x1F68-0x1F6F */ 
-0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77,   /* 0x1F70-0x1F77 */ 
-0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0x1F7E, 0x1F7F,   /* 0x1F78-0x1F7F */ 
-0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,   /* 0x1F80-0x1F87 */ 
-0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,   /* 0x1F88-0x1F8F */ 
-0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,   /* 0x1F90-0x1F97 */ 
-0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,   /* 0x1F98-0x1F9F */ 
-0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,   /* 0x1FA0-0x1FA7 */ 
-0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,   /* 0x1FA8-0x1FAF */ 
-0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x1FB5, 0x1FB6, 0x1FB7,   /* 0x1FB0-0x1FB7 */ 
-0x1FB0, 0x1FB1, 0x1F70, 0x1F71, 0x1FBC, 0x1FBD, 0x1FBE, 0x1FBF,   /* 0x1FB8-0x1FBF */ 
-0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC5, 0x1FC6, 0x1FC7,   /* 0x1FC0-0x1FC7 */ 
-0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF,   /* 0x1FC8-0x1FCF */ 
-0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3, 0x1FD4, 0x1FD5, 0x1FD6, 0x1FD7,   /* 0x1FD0-0x1FD7 */ 
-0x1FD0, 0x1FD1, 0x1F76, 0x1F77, 0x1FDC, 0x1FDD, 0x1FDE, 0x1FDF,   /* 0x1FD8-0x1FDF */ 
-0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7,   /* 0x1FE0-0x1FE7 */ 
-0x1FE0, 0x1FE1, 0x1F7A, 0x1F7B, 0x1FE5, 0x1FED, 0x1FEE, 0x1FEF,   /* 0x1FE8-0x1FEF */ 
-0x1FF0, 0x1FF1, 0x1FF2, 0x1FF3, 0x1FF4, 0x1FF5, 0x1FF6, 0x1FF7,   /* 0x1FF0-0x1FF7 */ 
-0x1F78, 0x1F79, 0x1F7C, 0x1F7D, 0x1FFC, 0x1FFD, 0x1FFE, 0x1FFF }; /* 0x1FF8-0x1FFF */
-
-static const u_int16_t lowcase_table_5[64] = {
-0x2140, 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147,   /* 0x2140-0x2147 */ 
-0x2148, 0x2149, 0x214A, 0x214B, 0x214C, 0x214D, 0x214E, 0x214F,   /* 0x2148-0x214F */ 
-0x2150, 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157,   /* 0x2150-0x2157 */ 
-0x2158, 0x2159, 0x215A, 0x215B, 0x215C, 0x215D, 0x215E, 0x215F,   /* 0x2158-0x215F */ 
-0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,   /* 0x2160-0x2167 */ 
-0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F,   /* 0x2168-0x216F */ 
-0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,   /* 0x2170-0x2177 */ 
-0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F }; /* 0x2178-0x217F */
-
-static const u_int16_t lowcase_table_6[128] = {
-0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,   /* 0x2480-0x2487 */ 
-0x2488, 0x2489, 0x248A, 0x248B, 0x248C, 0x248D, 0x248E, 0x248F,   /* 0x2488-0x248F */ 
-0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,   /* 0x2490-0x2497 */ 
-0x2498, 0x2499, 0x249A, 0x249B, 0x249C, 0x249D, 0x249E, 0x249F,   /* 0x2498-0x249F */ 
-0x24A0, 0x24A1, 0x24A2, 0x24A3, 0x24A4, 0x24A5, 0x24A6, 0x24A7,   /* 0x24A0-0x24A7 */ 
-0x24A8, 0x24A9, 0x24AA, 0x24AB, 0x24AC, 0x24AD, 0x24AE, 0x24AF,   /* 0x24A8-0x24AF */ 
-0x24B0, 0x24B1, 0x24B2, 0x24B3, 0x24B4, 0x24B5, 0x24D0, 0x24D1,   /* 0x24B0-0x24B7 */ 
-0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7, 0x24D8, 0x24D9,   /* 0x24B8-0x24BF */ 
-0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF, 0x24E0, 0x24E1,   /* 0x24C0-0x24C7 */ 
-0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7, 0x24E8, 0x24E9,   /* 0x24C8-0x24CF */ 
-0x24D0, 0x24D1, 0x24D2, 0x24D3, 0x24D4, 0x24D5, 0x24D6, 0x24D7,   /* 0x24D0-0x24D7 */ 
-0x24D8, 0x24D9, 0x24DA, 0x24DB, 0x24DC, 0x24DD, 0x24DE, 0x24DF,   /* 0x24D8-0x24DF */ 
-0x24E0, 0x24E1, 0x24E2, 0x24E3, 0x24E4, 0x24E5, 0x24E6, 0x24E7,   /* 0x24E0-0x24E7 */ 
-0x24E8, 0x24E9, 0x24EA, 0x24EB, 0x24EC, 0x24ED, 0x24EE, 0x24EF,   /* 0x24E8-0x24EF */ 
-0x24F0, 0x24F1, 0x24F2, 0x24F3, 0x24F4, 0x24F5, 0x24F6, 0x24F7,   /* 0x24F0-0x24F7 */ 
-0x24F8, 0x24F9, 0x24FA, 0x24FB, 0x24FC, 0x24FD, 0x24FE, 0x24FF }; /* 0x24F8-0x24FF */
-
-static const u_int16_t lowcase_table_7[64] = {
-0xFF00, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, 0xFF06, 0xFF07,   /* 0xFF00-0xFF07 */ 
-0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF0F,   /* 0xFF08-0xFF0F */ 
-0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17,   /* 0xFF10-0xFF17 */ 
-0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, 0xFF1E, 0xFF1F,   /* 0xFF18-0xFF1F */ 
-0xFF20, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47,   /* 0xFF20-0xFF27 */ 
-0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F,   /* 0xFF28-0xFF2F */ 
-0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57,   /* 0xFF30-0xFF37 */ 
-0xFF58, 0xFF59, 0xFF5A, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F }; /* 0xFF38-0xFF3F */
-
diff --git a/libatalk/unicode/utf16_case.c b/libatalk/unicode/utf16_case.c
new file mode 100644 (file)
index 0000000..bdf5e3a
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+DO NOT EDIT BY HAND!!!
+
+This file is generated by
+ contrib/misc/make-casetable.pl UnicodeData.txt utf16_casetable.h utf16_case.c
+
+UnicodeData.txt is got from
+http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
+*/
+
+#include <netatalk/endian.h>
+#include <atalk/unicode.h>
+#include "utf16_casetable.h"
+
+/*******************************************************************
+ Convert a wide character to upper case.
+*******************************************************************/
+ucs2_t toupper_w(ucs2_t val)
+{
+    if ( val >= 0x0040 && val <= 0x02BF)
+        return upper_table_1[val-0x0040];
+
+    if ( val >= 0x0340 && val <= 0x05BF)
+        return upper_table_2[val-0x0340];
+
+    if ( val >= 0x1D40 && val <= 0x1D7F)
+        return upper_table_3[val-0x1D40];
+
+    if ( val >= 0x1E00 && val <= 0x1FFF)
+        return upper_table_4[val-0x1E00];
+
+    if ( val >= 0x2140 && val <= 0x21BF)
+        return upper_table_5[val-0x2140];
+
+    if ( val >= 0x24C0 && val <= 0x24FF)
+        return upper_table_6[val-0x24C0];
+
+    if ( val >= 0x2C00 && val <= 0x2D3F)
+        return upper_table_7[val-0x2C00];
+
+    if ( val >= 0xA640 && val <= 0xA6BF)
+        return upper_table_8[val-0xA640];
+
+    if ( val >= 0xA700 && val <= 0xA7BF)
+        return upper_table_9[val-0xA700];
+
+    if ( val >= 0xFF40 && val <= 0xFF7F)
+        return upper_table_10[val-0xFF40];
+
+       return (val);
+}
+
+/*******************************************************************
+ Convert a surrogate pair to upper case.
+*******************************************************************/
+u_int32_t toupper_sp(u_int32_t val)
+{
+    if ( val >= 0xD801DC00 && val <= 0xD801DC7F)
+        return upper_table_sp_1[val-0xD801DC00];
+
+       return (val);
+}
+
+/*******************************************************************
+ Convert a wide character to lower case.
+*******************************************************************/
+ucs2_t tolower_w(ucs2_t val)
+{
+    if ( val >= 0x0040 && val <= 0x007F)
+        return lower_table_1[val-0x0040];
+
+    if ( val >= 0x00C0 && val <= 0x027F)
+        return lower_table_2[val-0x00C0];
+
+    if ( val >= 0x0340 && val <= 0x057F)
+        return lower_table_3[val-0x0340];
+
+    if ( val >= 0x1080 && val <= 0x10FF)
+        return lower_table_4[val-0x1080];
+
+    if ( val >= 0x1E00 && val <= 0x1FFF)
+        return lower_table_5[val-0x1E00];
+
+    if ( val >= 0x2100 && val <= 0x21BF)
+        return lower_table_6[val-0x2100];
+
+    if ( val >= 0x2480 && val <= 0x24FF)
+        return lower_table_7[val-0x2480];
+
+    if ( val >= 0x2C00 && val <= 0x2CFF)
+        return lower_table_8[val-0x2C00];
+
+    if ( val >= 0xA640 && val <= 0xA6BF)
+        return lower_table_9[val-0xA640];
+
+    if ( val >= 0xA700 && val <= 0xA7BF)
+        return lower_table_10[val-0xA700];
+
+    if ( val >= 0xFF00 && val <= 0xFF3F)
+        return lower_table_11[val-0xFF00];
+
+       return (val);
+}
+
+/*******************************************************************
+ Convert a surrogate pair to lower case.
+*******************************************************************/
+u_int32_t tolower_sp(u_int32_t val)
+{
+    if ( val >= 0xD801DC00 && val <= 0xD801DC3F)
+        return lower_table_sp_1[val-0xD801DC00];
+
+       return (val);
+}
+
+/* EOF */
diff --git a/libatalk/unicode/utf16_casetable.h b/libatalk/unicode/utf16_casetable.h
new file mode 100644 (file)
index 0000000..4872a8c
--- /dev/null
@@ -0,0 +1,5712 @@
+/*
+DO NOT EDIT BY HAND!!!
+
+This file is generated by
+ contrib/misc/make-casetable.pl UnicodeData.txt utf16_casetable.h utf16_case.c
+
+UnicodeData.txt is got from
+http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
+*/
+
+static const u_int16_t upper_table_1[640] = {
+  0x0040, /*U+0040*/ /**/
+  0x0041, /*U+0041*/ /**/
+  0x0042, /*U+0042*/ /**/
+  0x0043, /*U+0043*/ /**/
+  0x0044, /*U+0044*/ /**/
+  0x0045, /*U+0045*/ /**/
+  0x0046, /*U+0046*/ /**/
+  0x0047, /*U+0047*/ /**/
+  0x0048, /*U+0048*/ /**/
+  0x0049, /*U+0049*/ /**/
+  0x004A, /*U+004A*/ /**/
+  0x004B, /*U+004B*/ /**/
+  0x004C, /*U+004C*/ /**/
+  0x004D, /*U+004D*/ /**/
+  0x004E, /*U+004E*/ /**/
+  0x004F, /*U+004F*/ /**/
+  0x0050, /*U+0050*/ /**/
+  0x0051, /*U+0051*/ /**/
+  0x0052, /*U+0052*/ /**/
+  0x0053, /*U+0053*/ /**/
+  0x0054, /*U+0054*/ /**/
+  0x0055, /*U+0055*/ /**/
+  0x0056, /*U+0056*/ /**/
+  0x0057, /*U+0057*/ /**/
+  0x0058, /*U+0058*/ /**/
+  0x0059, /*U+0059*/ /**/
+  0x005A, /*U+005A*/ /**/
+  0x005B, /*U+005B*/ /**/
+  0x005C, /*U+005C*/ /**/
+  0x005D, /*U+005D*/ /**/
+  0x005E, /*U+005E*/ /**/
+  0x005F, /*U+005F*/ /**/
+  0x0060, /*U+0060*/ /**/
+  0x0041, /*U+0061*/ /*LATIN SMALL LETTER A*/
+  0x0042, /*U+0062*/ /*LATIN SMALL LETTER B*/
+  0x0043, /*U+0063*/ /*LATIN SMALL LETTER C*/
+  0x0044, /*U+0064*/ /*LATIN SMALL LETTER D*/
+  0x0045, /*U+0065*/ /*LATIN SMALL LETTER E*/
+  0x0046, /*U+0066*/ /*LATIN SMALL LETTER F*/
+  0x0047, /*U+0067*/ /*LATIN SMALL LETTER G*/
+  0x0048, /*U+0068*/ /*LATIN SMALL LETTER H*/
+  0x0049, /*U+0069*/ /*LATIN SMALL LETTER I*/
+  0x004A, /*U+006A*/ /*LATIN SMALL LETTER J*/
+  0x004B, /*U+006B*/ /*LATIN SMALL LETTER K*/
+  0x004C, /*U+006C*/ /*LATIN SMALL LETTER L*/
+  0x004D, /*U+006D*/ /*LATIN SMALL LETTER M*/
+  0x004E, /*U+006E*/ /*LATIN SMALL LETTER N*/
+  0x004F, /*U+006F*/ /*LATIN SMALL LETTER O*/
+  0x0050, /*U+0070*/ /*LATIN SMALL LETTER P*/
+  0x0051, /*U+0071*/ /*LATIN SMALL LETTER Q*/
+  0x0052, /*U+0072*/ /*LATIN SMALL LETTER R*/
+  0x0053, /*U+0073*/ /*LATIN SMALL LETTER S*/
+  0x0054, /*U+0074*/ /*LATIN SMALL LETTER T*/
+  0x0055, /*U+0075*/ /*LATIN SMALL LETTER U*/
+  0x0056, /*U+0076*/ /*LATIN SMALL LETTER V*/
+  0x0057, /*U+0077*/ /*LATIN SMALL LETTER W*/
+  0x0058, /*U+0078*/ /*LATIN SMALL LETTER X*/
+  0x0059, /*U+0079*/ /*LATIN SMALL LETTER Y*/
+  0x005A, /*U+007A*/ /*LATIN SMALL LETTER Z*/
+  0x007B, /*U+007B*/ /**/
+  0x007C, /*U+007C*/ /**/
+  0x007D, /*U+007D*/ /**/
+  0x007E, /*U+007E*/ /**/
+  0x007F, /*U+007F*/ /**/
+  0x0080, /*U+0080*/ /**/
+  0x0081, /*U+0081*/ /**/
+  0x0082, /*U+0082*/ /**/
+  0x0083, /*U+0083*/ /**/
+  0x0084, /*U+0084*/ /**/
+  0x0085, /*U+0085*/ /**/
+  0x0086, /*U+0086*/ /**/
+  0x0087, /*U+0087*/ /**/
+  0x0088, /*U+0088*/ /**/
+  0x0089, /*U+0089*/ /**/
+  0x008A, /*U+008A*/ /**/
+  0x008B, /*U+008B*/ /**/
+  0x008C, /*U+008C*/ /**/
+  0x008D, /*U+008D*/ /**/
+  0x008E, /*U+008E*/ /**/
+  0x008F, /*U+008F*/ /**/
+  0x0090, /*U+0090*/ /**/
+  0x0091, /*U+0091*/ /**/
+  0x0092, /*U+0092*/ /**/
+  0x0093, /*U+0093*/ /**/
+  0x0094, /*U+0094*/ /**/
+  0x0095, /*U+0095*/ /**/
+  0x0096, /*U+0096*/ /**/
+  0x0097, /*U+0097*/ /**/
+  0x0098, /*U+0098*/ /**/
+  0x0099, /*U+0099*/ /**/
+  0x009A, /*U+009A*/ /**/
+  0x009B, /*U+009B*/ /**/
+  0x009C, /*U+009C*/ /**/
+  0x009D, /*U+009D*/ /**/
+  0x009E, /*U+009E*/ /**/
+  0x009F, /*U+009F*/ /**/
+  0x00A0, /*U+00A0*/ /**/
+  0x00A1, /*U+00A1*/ /**/
+  0x00A2, /*U+00A2*/ /**/
+  0x00A3, /*U+00A3*/ /**/
+  0x00A4, /*U+00A4*/ /**/
+  0x00A5, /*U+00A5*/ /**/
+  0x00A6, /*U+00A6*/ /**/
+  0x00A7, /*U+00A7*/ /**/
+  0x00A8, /*U+00A8*/ /**/
+  0x00A9, /*U+00A9*/ /**/
+  0x00AA, /*U+00AA*/ /**/
+  0x00AB, /*U+00AB*/ /**/
+  0x00AC, /*U+00AC*/ /**/
+  0x00AD, /*U+00AD*/ /**/
+  0x00AE, /*U+00AE*/ /**/
+  0x00AF, /*U+00AF*/ /**/
+  0x00B0, /*U+00B0*/ /**/
+  0x00B1, /*U+00B1*/ /**/
+  0x00B2, /*U+00B2*/ /**/
+  0x00B3, /*U+00B3*/ /**/
+  0x00B4, /*U+00B4*/ /**/
+  0x039C, /*U+00B5*/ /*MICRO SIGN*/
+  0x00B6, /*U+00B6*/ /**/
+  0x00B7, /*U+00B7*/ /**/
+  0x00B8, /*U+00B8*/ /**/
+  0x00B9, /*U+00B9*/ /**/
+  0x00BA, /*U+00BA*/ /**/
+  0x00BB, /*U+00BB*/ /**/
+  0x00BC, /*U+00BC*/ /**/
+  0x00BD, /*U+00BD*/ /**/
+  0x00BE, /*U+00BE*/ /**/
+  0x00BF, /*U+00BF*/ /**/
+  0x00C0, /*U+00C0*/ /**/
+  0x00C1, /*U+00C1*/ /**/
+  0x00C2, /*U+00C2*/ /**/
+  0x00C3, /*U+00C3*/ /**/
+  0x00C4, /*U+00C4*/ /**/
+  0x00C5, /*U+00C5*/ /**/
+  0x00C6, /*U+00C6*/ /**/
+  0x00C7, /*U+00C7*/ /**/
+  0x00C8, /*U+00C8*/ /**/
+  0x00C9, /*U+00C9*/ /**/
+  0x00CA, /*U+00CA*/ /**/
+  0x00CB, /*U+00CB*/ /**/
+  0x00CC, /*U+00CC*/ /**/
+  0x00CD, /*U+00CD*/ /**/
+  0x00CE, /*U+00CE*/ /**/
+  0x00CF, /*U+00CF*/ /**/
+  0x00D0, /*U+00D0*/ /**/
+  0x00D1, /*U+00D1*/ /**/
+  0x00D2, /*U+00D2*/ /**/
+  0x00D3, /*U+00D3*/ /**/
+  0x00D4, /*U+00D4*/ /**/
+  0x00D5, /*U+00D5*/ /**/
+  0x00D6, /*U+00D6*/ /**/
+  0x00D7, /*U+00D7*/ /**/
+  0x00D8, /*U+00D8*/ /**/
+  0x00D9, /*U+00D9*/ /**/
+  0x00DA, /*U+00DA*/ /**/
+  0x00DB, /*U+00DB*/ /**/
+  0x00DC, /*U+00DC*/ /**/
+  0x00DD, /*U+00DD*/ /**/
+  0x00DE, /*U+00DE*/ /**/
+  0x00DF, /*U+00DF*/ /**/
+  0x00C0, /*U+00E0*/ /*LATIN SMALL LETTER A WITH GRAVE*/
+  0x00C1, /*U+00E1*/ /*LATIN SMALL LETTER A WITH ACUTE*/
+  0x00C2, /*U+00E2*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX*/
+  0x00C3, /*U+00E3*/ /*LATIN SMALL LETTER A WITH TILDE*/
+  0x00C4, /*U+00E4*/ /*LATIN SMALL LETTER A WITH DIAERESIS*/
+  0x00C5, /*U+00E5*/ /*LATIN SMALL LETTER A WITH RING ABOVE*/
+  0x00C6, /*U+00E6*/ /*LATIN SMALL LETTER AE*/
+  0x00C7, /*U+00E7*/ /*LATIN SMALL LETTER C WITH CEDILLA*/
+  0x00C8, /*U+00E8*/ /*LATIN SMALL LETTER E WITH GRAVE*/
+  0x00C9, /*U+00E9*/ /*LATIN SMALL LETTER E WITH ACUTE*/
+  0x00CA, /*U+00EA*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX*/
+  0x00CB, /*U+00EB*/ /*LATIN SMALL LETTER E WITH DIAERESIS*/
+  0x00CC, /*U+00EC*/ /*LATIN SMALL LETTER I WITH GRAVE*/
+  0x00CD, /*U+00ED*/ /*LATIN SMALL LETTER I WITH ACUTE*/
+  0x00CE, /*U+00EE*/ /*LATIN SMALL LETTER I WITH CIRCUMFLEX*/
+  0x00CF, /*U+00EF*/ /*LATIN SMALL LETTER I WITH DIAERESIS*/
+  0x00D0, /*U+00F0*/ /*LATIN SMALL LETTER ETH*/
+  0x00D1, /*U+00F1*/ /*LATIN SMALL LETTER N WITH TILDE*/
+  0x00D2, /*U+00F2*/ /*LATIN SMALL LETTER O WITH GRAVE*/
+  0x00D3, /*U+00F3*/ /*LATIN SMALL LETTER O WITH ACUTE*/
+  0x00D4, /*U+00F4*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX*/
+  0x00D5, /*U+00F5*/ /*LATIN SMALL LETTER O WITH TILDE*/
+  0x00D6, /*U+00F6*/ /*LATIN SMALL LETTER O WITH DIAERESIS*/
+  0x00F7, /*U+00F7*/ /**/
+  0x00D8, /*U+00F8*/ /*LATIN SMALL LETTER O WITH STROKE*/
+  0x00D9, /*U+00F9*/ /*LATIN SMALL LETTER U WITH GRAVE*/
+  0x00DA, /*U+00FA*/ /*LATIN SMALL LETTER U WITH ACUTE*/
+  0x00DB, /*U+00FB*/ /*LATIN SMALL LETTER U WITH CIRCUMFLEX*/
+  0x00DC, /*U+00FC*/ /*LATIN SMALL LETTER U WITH DIAERESIS*/
+  0x00DD, /*U+00FD*/ /*LATIN SMALL LETTER Y WITH ACUTE*/
+  0x00DE, /*U+00FE*/ /*LATIN SMALL LETTER THORN*/
+  0x0178, /*U+00FF*/ /*LATIN SMALL LETTER Y WITH DIAERESIS*/
+  0x0100, /*U+0100*/ /**/
+  0x0100, /*U+0101*/ /*LATIN SMALL LETTER A WITH MACRON*/
+  0x0102, /*U+0102*/ /**/
+  0x0102, /*U+0103*/ /*LATIN SMALL LETTER A WITH BREVE*/
+  0x0104, /*U+0104*/ /**/
+  0x0104, /*U+0105*/ /*LATIN SMALL LETTER A WITH OGONEK*/
+  0x0106, /*U+0106*/ /**/
+  0x0106, /*U+0107*/ /*LATIN SMALL LETTER C WITH ACUTE*/
+  0x0108, /*U+0108*/ /**/
+  0x0108, /*U+0109*/ /*LATIN SMALL LETTER C WITH CIRCUMFLEX*/
+  0x010A, /*U+010A*/ /**/
+  0x010A, /*U+010B*/ /*LATIN SMALL LETTER C WITH DOT ABOVE*/
+  0x010C, /*U+010C*/ /**/
+  0x010C, /*U+010D*/ /*LATIN SMALL LETTER C WITH CARON*/
+  0x010E, /*U+010E*/ /**/
+  0x010E, /*U+010F*/ /*LATIN SMALL LETTER D WITH CARON*/
+  0x0110, /*U+0110*/ /**/
+  0x0110, /*U+0111*/ /*LATIN SMALL LETTER D WITH STROKE*/
+  0x0112, /*U+0112*/ /**/
+  0x0112, /*U+0113*/ /*LATIN SMALL LETTER E WITH MACRON*/
+  0x0114, /*U+0114*/ /**/
+  0x0114, /*U+0115*/ /*LATIN SMALL LETTER E WITH BREVE*/
+  0x0116, /*U+0116*/ /**/
+  0x0116, /*U+0117*/ /*LATIN SMALL LETTER E WITH DOT ABOVE*/
+  0x0118, /*U+0118*/ /**/
+  0x0118, /*U+0119*/ /*LATIN SMALL LETTER E WITH OGONEK*/
+  0x011A, /*U+011A*/ /**/
+  0x011A, /*U+011B*/ /*LATIN SMALL LETTER E WITH CARON*/
+  0x011C, /*U+011C*/ /**/
+  0x011C, /*U+011D*/ /*LATIN SMALL LETTER G WITH CIRCUMFLEX*/
+  0x011E, /*U+011E*/ /**/
+  0x011E, /*U+011F*/ /*LATIN SMALL LETTER G WITH BREVE*/
+  0x0120, /*U+0120*/ /**/
+  0x0120, /*U+0121*/ /*LATIN SMALL LETTER G WITH DOT ABOVE*/
+  0x0122, /*U+0122*/ /**/
+  0x0122, /*U+0123*/ /*LATIN SMALL LETTER G WITH CEDILLA*/
+  0x0124, /*U+0124*/ /**/
+  0x0124, /*U+0125*/ /*LATIN SMALL LETTER H WITH CIRCUMFLEX*/
+  0x0126, /*U+0126*/ /**/
+  0x0126, /*U+0127*/ /*LATIN SMALL LETTER H WITH STROKE*/
+  0x0128, /*U+0128*/ /**/
+  0x0128, /*U+0129*/ /*LATIN SMALL LETTER I WITH TILDE*/
+  0x012A, /*U+012A*/ /**/
+  0x012A, /*U+012B*/ /*LATIN SMALL LETTER I WITH MACRON*/
+  0x012C, /*U+012C*/ /**/
+  0x012C, /*U+012D*/ /*LATIN SMALL LETTER I WITH BREVE*/
+  0x012E, /*U+012E*/ /**/
+  0x012E, /*U+012F*/ /*LATIN SMALL LETTER I WITH OGONEK*/
+  0x0130, /*U+0130*/ /**/
+  0x0049, /*U+0131*/ /*LATIN SMALL LETTER DOTLESS I*/
+  0x0132, /*U+0132*/ /**/
+  0x0132, /*U+0133*/ /*LATIN SMALL LIGATURE IJ*/
+  0x0134, /*U+0134*/ /**/
+  0x0134, /*U+0135*/ /*LATIN SMALL LETTER J WITH CIRCUMFLEX*/
+  0x0136, /*U+0136*/ /**/
+  0x0136, /*U+0137*/ /*LATIN SMALL LETTER K WITH CEDILLA*/
+  0x0138, /*U+0138*/ /**/
+  0x0139, /*U+0139*/ /**/
+  0x0139, /*U+013A*/ /*LATIN SMALL LETTER L WITH ACUTE*/
+  0x013B, /*U+013B*/ /**/
+  0x013B, /*U+013C*/ /*LATIN SMALL LETTER L WITH CEDILLA*/
+  0x013D, /*U+013D*/ /**/
+  0x013D, /*U+013E*/ /*LATIN SMALL LETTER L WITH CARON*/
+  0x013F, /*U+013F*/ /**/
+  0x013F, /*U+0140*/ /*LATIN SMALL LETTER L WITH MIDDLE DOT*/
+  0x0141, /*U+0141*/ /**/
+  0x0141, /*U+0142*/ /*LATIN SMALL LETTER L WITH STROKE*/
+  0x0143, /*U+0143*/ /**/
+  0x0143, /*U+0144*/ /*LATIN SMALL LETTER N WITH ACUTE*/
+  0x0145, /*U+0145*/ /**/
+  0x0145, /*U+0146*/ /*LATIN SMALL LETTER N WITH CEDILLA*/
+  0x0147, /*U+0147*/ /**/
+  0x0147, /*U+0148*/ /*LATIN SMALL LETTER N WITH CARON*/
+  0x0149, /*U+0149*/ /**/
+  0x014A, /*U+014A*/ /**/
+  0x014A, /*U+014B*/ /*LATIN SMALL LETTER ENG*/
+  0x014C, /*U+014C*/ /**/
+  0x014C, /*U+014D*/ /*LATIN SMALL LETTER O WITH MACRON*/
+  0x014E, /*U+014E*/ /**/
+  0x014E, /*U+014F*/ /*LATIN SMALL LETTER O WITH BREVE*/
+  0x0150, /*U+0150*/ /**/
+  0x0150, /*U+0151*/ /*LATIN SMALL LETTER O WITH DOUBLE ACUTE*/
+  0x0152, /*U+0152*/ /**/
+  0x0152, /*U+0153*/ /*LATIN SMALL LIGATURE OE*/
+  0x0154, /*U+0154*/ /**/
+  0x0154, /*U+0155*/ /*LATIN SMALL LETTER R WITH ACUTE*/
+  0x0156, /*U+0156*/ /**/
+  0x0156, /*U+0157*/ /*LATIN SMALL LETTER R WITH CEDILLA*/
+  0x0158, /*U+0158*/ /**/
+  0x0158, /*U+0159*/ /*LATIN SMALL LETTER R WITH CARON*/
+  0x015A, /*U+015A*/ /**/
+  0x015A, /*U+015B*/ /*LATIN SMALL LETTER S WITH ACUTE*/
+  0x015C, /*U+015C*/ /**/
+  0x015C, /*U+015D*/ /*LATIN SMALL LETTER S WITH CIRCUMFLEX*/
+  0x015E, /*U+015E*/ /**/
+  0x015E, /*U+015F*/ /*LATIN SMALL LETTER S WITH CEDILLA*/
+  0x0160, /*U+0160*/ /**/
+  0x0160, /*U+0161*/ /*LATIN SMALL LETTER S WITH CARON*/
+  0x0162, /*U+0162*/ /**/
+  0x0162, /*U+0163*/ /*LATIN SMALL LETTER T WITH CEDILLA*/
+  0x0164, /*U+0164*/ /**/
+  0x0164, /*U+0165*/ /*LATIN SMALL LETTER T WITH CARON*/
+  0x0166, /*U+0166*/ /**/
+  0x0166, /*U+0167*/ /*LATIN SMALL LETTER T WITH STROKE*/
+  0x0168, /*U+0168*/ /**/
+  0x0168, /*U+0169*/ /*LATIN SMALL LETTER U WITH TILDE*/
+  0x016A, /*U+016A*/ /**/
+  0x016A, /*U+016B*/ /*LATIN SMALL LETTER U WITH MACRON*/
+  0x016C, /*U+016C*/ /**/
+  0x016C, /*U+016D*/ /*LATIN SMALL LETTER U WITH BREVE*/
+  0x016E, /*U+016E*/ /**/
+  0x016E, /*U+016F*/ /*LATIN SMALL LETTER U WITH RING ABOVE*/
+  0x0170, /*U+0170*/ /**/
+  0x0170, /*U+0171*/ /*LATIN SMALL LETTER U WITH DOUBLE ACUTE*/
+  0x0172, /*U+0172*/ /**/
+  0x0172, /*U+0173*/ /*LATIN SMALL LETTER U WITH OGONEK*/
+  0x0174, /*U+0174*/ /**/
+  0x0174, /*U+0175*/ /*LATIN SMALL LETTER W WITH CIRCUMFLEX*/
+  0x0176, /*U+0176*/ /**/
+  0x0176, /*U+0177*/ /*LATIN SMALL LETTER Y WITH CIRCUMFLEX*/
+  0x0178, /*U+0178*/ /**/
+  0x0179, /*U+0179*/ /**/
+  0x0179, /*U+017A*/ /*LATIN SMALL LETTER Z WITH ACUTE*/
+  0x017B, /*U+017B*/ /**/
+  0x017B, /*U+017C*/ /*LATIN SMALL LETTER Z WITH DOT ABOVE*/
+  0x017D, /*U+017D*/ /**/
+  0x017D, /*U+017E*/ /*LATIN SMALL LETTER Z WITH CARON*/
+  0x0053, /*U+017F*/ /*LATIN SMALL LETTER LONG S*/
+  0x0243, /*U+0180*/ /*LATIN SMALL LETTER B WITH STROKE*/
+  0x0181, /*U+0181*/ /**/
+  0x0182, /*U+0182*/ /**/
+  0x0182, /*U+0183*/ /*LATIN SMALL LETTER B WITH TOPBAR*/
+  0x0184, /*U+0184*/ /**/
+  0x0184, /*U+0185*/ /*LATIN SMALL LETTER TONE SIX*/
+  0x0186, /*U+0186*/ /**/
+  0x0187, /*U+0187*/ /**/
+  0x0187, /*U+0188*/ /*LATIN SMALL LETTER C WITH HOOK*/
+  0x0189, /*U+0189*/ /**/
+  0x018A, /*U+018A*/ /**/
+  0x018B, /*U+018B*/ /**/
+  0x018B, /*U+018C*/ /*LATIN SMALL LETTER D WITH TOPBAR*/
+  0x018D, /*U+018D*/ /**/
+  0x018E, /*U+018E*/ /**/
+  0x018F, /*U+018F*/ /**/
+  0x0190, /*U+0190*/ /**/
+  0x0191, /*U+0191*/ /**/
+  0x0191, /*U+0192*/ /*LATIN SMALL LETTER F WITH HOOK*/
+  0x0193, /*U+0193*/ /**/
+  0x0194, /*U+0194*/ /**/
+  0x01F6, /*U+0195*/ /*LATIN SMALL LETTER HV*/
+  0x0196, /*U+0196*/ /**/
+  0x0197, /*U+0197*/ /**/
+  0x0198, /*U+0198*/ /**/
+  0x0198, /*U+0199*/ /*LATIN SMALL LETTER K WITH HOOK*/
+  0x023D, /*U+019A*/ /*LATIN SMALL LETTER L WITH BAR*/
+  0x019B, /*U+019B*/ /**/
+  0x019C, /*U+019C*/ /**/
+  0x019D, /*U+019D*/ /**/
+  0x0220, /*U+019E*/ /*LATIN SMALL LETTER N WITH LONG RIGHT LEG*/
+  0x019F, /*U+019F*/ /**/
+  0x01A0, /*U+01A0*/ /**/
+  0x01A0, /*U+01A1*/ /*LATIN SMALL LETTER O WITH HORN*/
+  0x01A2, /*U+01A2*/ /**/
+  0x01A2, /*U+01A3*/ /*LATIN SMALL LETTER OI*/
+  0x01A4, /*U+01A4*/ /**/
+  0x01A4, /*U+01A5*/ /*LATIN SMALL LETTER P WITH HOOK*/
+  0x01A6, /*U+01A6*/ /**/
+  0x01A7, /*U+01A7*/ /**/
+  0x01A7, /*U+01A8*/ /*LATIN SMALL LETTER TONE TWO*/
+  0x01A9, /*U+01A9*/ /**/
+  0x01AA, /*U+01AA*/ /**/
+  0x01AB, /*U+01AB*/ /**/
+  0x01AC, /*U+01AC*/ /**/
+  0x01AC, /*U+01AD*/ /*LATIN SMALL LETTER T WITH HOOK*/
+  0x01AE, /*U+01AE*/ /**/
+  0x01AF, /*U+01AF*/ /**/
+  0x01AF, /*U+01B0*/ /*LATIN SMALL LETTER U WITH HORN*/
+  0x01B1, /*U+01B1*/ /**/
+  0x01B2, /*U+01B2*/ /**/
+  0x01B3, /*U+01B3*/ /**/
+  0x01B3, /*U+01B4*/ /*LATIN SMALL LETTER Y WITH HOOK*/
+  0x01B5, /*U+01B5*/ /**/
+  0x01B5, /*U+01B6*/ /*LATIN SMALL LETTER Z WITH STROKE*/
+  0x01B7, /*U+01B7*/ /**/
+  0x01B8, /*U+01B8*/ /**/
+  0x01B8, /*U+01B9*/ /*LATIN SMALL LETTER EZH REVERSED*/
+  0x01BA, /*U+01BA*/ /**/
+  0x01BB, /*U+01BB*/ /**/
+  0x01BC, /*U+01BC*/ /**/
+  0x01BC, /*U+01BD*/ /*LATIN SMALL LETTER TONE FIVE*/
+  0x01BE, /*U+01BE*/ /**/
+  0x01F7, /*U+01BF*/ /*LATIN LETTER WYNN*/
+  0x01C0, /*U+01C0*/ /**/
+  0x01C1, /*U+01C1*/ /**/
+  0x01C2, /*U+01C2*/ /**/
+  0x01C3, /*U+01C3*/ /**/
+  0x01C4, /*U+01C4*/ /**/
+  0x01C4, /*U+01C5*/ /*LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/
+  0x01C4, /*U+01C6*/ /*LATIN SMALL LETTER DZ WITH CARON*/
+  0x01C7, /*U+01C7*/ /**/
+  0x01C7, /*U+01C8*/ /*LATIN CAPITAL LETTER L WITH SMALL LETTER J*/
+  0x01C7, /*U+01C9*/ /*LATIN SMALL LETTER LJ*/
+  0x01CA, /*U+01CA*/ /**/
+  0x01CA, /*U+01CB*/ /*LATIN CAPITAL LETTER N WITH SMALL LETTER J*/
+  0x01CA, /*U+01CC*/ /*LATIN SMALL LETTER NJ*/
+  0x01CD, /*U+01CD*/ /**/
+  0x01CD, /*U+01CE*/ /*LATIN SMALL LETTER A WITH CARON*/
+  0x01CF, /*U+01CF*/ /**/
+  0x01CF, /*U+01D0*/ /*LATIN SMALL LETTER I WITH CARON*/
+  0x01D1, /*U+01D1*/ /**/
+  0x01D1, /*U+01D2*/ /*LATIN SMALL LETTER O WITH CARON*/
+  0x01D3, /*U+01D3*/ /**/
+  0x01D3, /*U+01D4*/ /*LATIN SMALL LETTER U WITH CARON*/
+  0x01D5, /*U+01D5*/ /**/
+  0x01D5, /*U+01D6*/ /*LATIN SMALL LETTER U WITH DIAERESIS AND MACRON*/
+  0x01D7, /*U+01D7*/ /**/
+  0x01D7, /*U+01D8*/ /*LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE*/
+  0x01D9, /*U+01D9*/ /**/
+  0x01D9, /*U+01DA*/ /*LATIN SMALL LETTER U WITH DIAERESIS AND CARON*/
+  0x01DB, /*U+01DB*/ /**/
+  0x01DB, /*U+01DC*/ /*LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE*/
+  0x018E, /*U+01DD*/ /*LATIN SMALL LETTER TURNED E*/
+  0x01DE, /*U+01DE*/ /**/
+  0x01DE, /*U+01DF*/ /*LATIN SMALL LETTER A WITH DIAERESIS AND MACRON*/
+  0x01E0, /*U+01E0*/ /**/
+  0x01E0, /*U+01E1*/ /*LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON*/
+  0x01E2, /*U+01E2*/ /**/
+  0x01E2, /*U+01E3*/ /*LATIN SMALL LETTER AE WITH MACRON*/
+  0x01E4, /*U+01E4*/ /**/
+  0x01E4, /*U+01E5*/ /*LATIN SMALL LETTER G WITH STROKE*/
+  0x01E6, /*U+01E6*/ /**/
+  0x01E6, /*U+01E7*/ /*LATIN SMALL LETTER G WITH CARON*/
+  0x01E8, /*U+01E8*/ /**/
+  0x01E8, /*U+01E9*/ /*LATIN SMALL LETTER K WITH CARON*/
+  0x01EA, /*U+01EA*/ /**/
+  0x01EA, /*U+01EB*/ /*LATIN SMALL LETTER O WITH OGONEK*/
+  0x01EC, /*U+01EC*/ /**/
+  0x01EC, /*U+01ED*/ /*LATIN SMALL LETTER O WITH OGONEK AND MACRON*/
+  0x01EE, /*U+01EE*/ /**/
+  0x01EE, /*U+01EF*/ /*LATIN SMALL LETTER EZH WITH CARON*/
+  0x01F0, /*U+01F0*/ /**/
+  0x01F1, /*U+01F1*/ /**/
+  0x01F1, /*U+01F2*/ /*LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/
+  0x01F1, /*U+01F3*/ /*LATIN SMALL LETTER DZ*/
+  0x01F4, /*U+01F4*/ /**/
+  0x01F4, /*U+01F5*/ /*LATIN SMALL LETTER G WITH ACUTE*/
+  0x01F6, /*U+01F6*/ /**/
+  0x01F7, /*U+01F7*/ /**/
+  0x01F8, /*U+01F8*/ /**/
+  0x01F8, /*U+01F9*/ /*LATIN SMALL LETTER N WITH GRAVE*/
+  0x01FA, /*U+01FA*/ /**/
+  0x01FA, /*U+01FB*/ /*LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE*/
+  0x01FC, /*U+01FC*/ /**/
+  0x01FC, /*U+01FD*/ /*LATIN SMALL LETTER AE WITH ACUTE*/
+  0x01FE, /*U+01FE*/ /**/
+  0x01FE, /*U+01FF*/ /*LATIN SMALL LETTER O WITH STROKE AND ACUTE*/
+  0x0200, /*U+0200*/ /**/
+  0x0200, /*U+0201*/ /*LATIN SMALL LETTER A WITH DOUBLE GRAVE*/
+  0x0202, /*U+0202*/ /**/
+  0x0202, /*U+0203*/ /*LATIN SMALL LETTER A WITH INVERTED BREVE*/
+  0x0204, /*U+0204*/ /**/
+  0x0204, /*U+0205*/ /*LATIN SMALL LETTER E WITH DOUBLE GRAVE*/
+  0x0206, /*U+0206*/ /**/
+  0x0206, /*U+0207*/ /*LATIN SMALL LETTER E WITH INVERTED BREVE*/
+  0x0208, /*U+0208*/ /**/
+  0x0208, /*U+0209*/ /*LATIN SMALL LETTER I WITH DOUBLE GRAVE*/
+  0x020A, /*U+020A*/ /**/
+  0x020A, /*U+020B*/ /*LATIN SMALL LETTER I WITH INVERTED BREVE*/
+  0x020C, /*U+020C*/ /**/
+  0x020C, /*U+020D*/ /*LATIN SMALL LETTER O WITH DOUBLE GRAVE*/
+  0x020E, /*U+020E*/ /**/
+  0x020E, /*U+020F*/ /*LATIN SMALL LETTER O WITH INVERTED BREVE*/
+  0x0210, /*U+0210*/ /**/
+  0x0210, /*U+0211*/ /*LATIN SMALL LETTER R WITH DOUBLE GRAVE*/
+  0x0212, /*U+0212*/ /**/
+  0x0212, /*U+0213*/ /*LATIN SMALL LETTER R WITH INVERTED BREVE*/
+  0x0214, /*U+0214*/ /**/
+  0x0214, /*U+0215*/ /*LATIN SMALL LETTER U WITH DOUBLE GRAVE*/
+  0x0216, /*U+0216*/ /**/
+  0x0216, /*U+0217*/ /*LATIN SMALL LETTER U WITH INVERTED BREVE*/
+  0x0218, /*U+0218*/ /**/
+  0x0218, /*U+0219*/ /*LATIN SMALL LETTER S WITH COMMA BELOW*/
+  0x021A, /*U+021A*/ /**/
+  0x021A, /*U+021B*/ /*LATIN SMALL LETTER T WITH COMMA BELOW*/
+  0x021C, /*U+021C*/ /**/
+  0x021C, /*U+021D*/ /*LATIN SMALL LETTER YOGH*/
+  0x021E, /*U+021E*/ /**/
+  0x021E, /*U+021F*/ /*LATIN SMALL LETTER H WITH CARON*/
+  0x0220, /*U+0220*/ /**/
+  0x0221, /*U+0221*/ /**/
+  0x0222, /*U+0222*/ /**/
+  0x0222, /*U+0223*/ /*LATIN SMALL LETTER OU*/
+  0x0224, /*U+0224*/ /**/
+  0x0224, /*U+0225*/ /*LATIN SMALL LETTER Z WITH HOOK*/
+  0x0226, /*U+0226*/ /**/
+  0x0226, /*U+0227*/ /*LATIN SMALL LETTER A WITH DOT ABOVE*/
+  0x0228, /*U+0228*/ /**/
+  0x0228, /*U+0229*/ /*LATIN SMALL LETTER E WITH CEDILLA*/
+  0x022A, /*U+022A*/ /**/
+  0x022A, /*U+022B*/ /*LATIN SMALL LETTER O WITH DIAERESIS AND MACRON*/
+  0x022C, /*U+022C*/ /**/
+  0x022C, /*U+022D*/ /*LATIN SMALL LETTER O WITH TILDE AND MACRON*/
+  0x022E, /*U+022E*/ /**/
+  0x022E, /*U+022F*/ /*LATIN SMALL LETTER O WITH DOT ABOVE*/
+  0x0230, /*U+0230*/ /**/
+  0x0230, /*U+0231*/ /*LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON*/
+  0x0232, /*U+0232*/ /**/
+  0x0232, /*U+0233*/ /*LATIN SMALL LETTER Y WITH MACRON*/
+  0x0234, /*U+0234*/ /**/
+  0x0235, /*U+0235*/ /**/
+  0x0236, /*U+0236*/ /**/
+  0x0237, /*U+0237*/ /**/
+  0x0238, /*U+0238*/ /**/
+  0x0239, /*U+0239*/ /**/
+  0x023A, /*U+023A*/ /**/
+  0x023B, /*U+023B*/ /**/
+  0x023B, /*U+023C*/ /*LATIN SMALL LETTER C WITH STROKE*/
+  0x023D, /*U+023D*/ /**/
+  0x023E, /*U+023E*/ /**/
+  0x2C7E, /*U+023F*/ /*LATIN SMALL LETTER S WITH SWASH TAIL*/
+  0x2C7F, /*U+0240*/ /*LATIN SMALL LETTER Z WITH SWASH TAIL*/
+  0x0241, /*U+0241*/ /**/
+  0x0241, /*U+0242*/ /*LATIN SMALL LETTER GLOTTAL STOP*/
+  0x0243, /*U+0243*/ /**/
+  0x0244, /*U+0244*/ /**/
+  0x0245, /*U+0245*/ /**/
+  0x0246, /*U+0246*/ /**/
+  0x0246, /*U+0247*/ /*LATIN SMALL LETTER E WITH STROKE*/
+  0x0248, /*U+0248*/ /**/
+  0x0248, /*U+0249*/ /*LATIN SMALL LETTER J WITH STROKE*/
+  0x024A, /*U+024A*/ /**/
+  0x024A, /*U+024B*/ /*LATIN SMALL LETTER Q WITH HOOK TAIL*/
+  0x024C, /*U+024C*/ /**/
+  0x024C, /*U+024D*/ /*LATIN SMALL LETTER R WITH STROKE*/
+  0x024E, /*U+024E*/ /**/
+  0x024E, /*U+024F*/ /*LATIN SMALL LETTER Y WITH STROKE*/
+  0x2C6F, /*U+0250*/ /*LATIN SMALL LETTER TURNED A*/
+  0x2C6D, /*U+0251*/ /*LATIN SMALL LETTER ALPHA*/
+  0x2C70, /*U+0252*/ /*LATIN SMALL LETTER TURNED ALPHA*/
+  0x0181, /*U+0253*/ /*LATIN SMALL LETTER B WITH HOOK*/
+  0x0186, /*U+0254*/ /*LATIN SMALL LETTER OPEN O*/
+  0x0255, /*U+0255*/ /**/
+  0x0189, /*U+0256*/ /*LATIN SMALL LETTER D WITH TAIL*/
+  0x018A, /*U+0257*/ /*LATIN SMALL LETTER D WITH HOOK*/
+  0x0258, /*U+0258*/ /**/
+  0x018F, /*U+0259*/ /*LATIN SMALL LETTER SCHWA*/
+  0x025A, /*U+025A*/ /**/
+  0x0190, /*U+025B*/ /*LATIN SMALL LETTER OPEN E*/
+  0x025C, /*U+025C*/ /**/
+  0x025D, /*U+025D*/ /**/
+  0x025E, /*U+025E*/ /**/
+  0x025F, /*U+025F*/ /**/
+  0x0193, /*U+0260*/ /*LATIN SMALL LETTER G WITH HOOK*/
+  0x0261, /*U+0261*/ /**/
+  0x0262, /*U+0262*/ /**/
+  0x0194, /*U+0263*/ /*LATIN SMALL LETTER GAMMA*/
+  0x0264, /*U+0264*/ /**/
+  0xA78D, /*U+0265*/ /*LATIN SMALL LETTER TURNED H*/
+  0x0266, /*U+0266*/ /**/
+  0x0267, /*U+0267*/ /**/
+  0x0197, /*U+0268*/ /*LATIN SMALL LETTER I WITH STROKE*/
+  0x0196, /*U+0269*/ /*LATIN SMALL LETTER IOTA*/
+  0x026A, /*U+026A*/ /**/
+  0x2C62, /*U+026B*/ /*LATIN SMALL LETTER L WITH MIDDLE TILDE*/
+  0x026C, /*U+026C*/ /**/
+  0x026D, /*U+026D*/ /**/
+  0x026E, /*U+026E*/ /**/
+  0x019C, /*U+026F*/ /*LATIN SMALL LETTER TURNED M*/
+  0x0270, /*U+0270*/ /**/
+  0x2C6E, /*U+0271*/ /*LATIN SMALL LETTER M WITH HOOK*/
+  0x019D, /*U+0272*/ /*LATIN SMALL LETTER N WITH LEFT HOOK*/
+  0x0273, /*U+0273*/ /**/
+  0x0274, /*U+0274*/ /**/
+  0x019F, /*U+0275*/ /*LATIN SMALL LETTER BARRED O*/
+  0x0276, /*U+0276*/ /**/
+  0x0277, /*U+0277*/ /**/
+  0x0278, /*U+0278*/ /**/
+  0x0279, /*U+0279*/ /**/
+  0x027A, /*U+027A*/ /**/
+  0x027B, /*U+027B*/ /**/
+  0x027C, /*U+027C*/ /**/
+  0x2C64, /*U+027D*/ /*LATIN SMALL LETTER R WITH TAIL*/
+  0x027E, /*U+027E*/ /**/
+  0x027F, /*U+027F*/ /**/
+  0x01A6, /*U+0280*/ /*LATIN LETTER SMALL CAPITAL R*/
+  0x0281, /*U+0281*/ /**/
+  0x0282, /*U+0282*/ /**/
+  0x01A9, /*U+0283*/ /*LATIN SMALL LETTER ESH*/
+  0x0284, /*U+0284*/ /**/
+  0x0285, /*U+0285*/ /**/
+  0x0286, /*U+0286*/ /**/
+  0x0287, /*U+0287*/ /**/
+  0x01AE, /*U+0288*/ /*LATIN SMALL LETTER T WITH RETROFLEX HOOK*/
+  0x0244, /*U+0289*/ /*LATIN SMALL LETTER U BAR*/
+  0x01B1, /*U+028A*/ /*LATIN SMALL LETTER UPSILON*/
+  0x01B2, /*U+028B*/ /*LATIN SMALL LETTER V WITH HOOK*/
+  0x0245, /*U+028C*/ /*LATIN SMALL LETTER TURNED V*/
+  0x028D, /*U+028D*/ /**/
+  0x028E, /*U+028E*/ /**/
+  0x028F, /*U+028F*/ /**/
+  0x0290, /*U+0290*/ /**/
+  0x0291, /*U+0291*/ /**/
+  0x01B7, /*U+0292*/ /*LATIN SMALL LETTER EZH*/
+  0x0293, /*U+0293*/ /**/
+  0x0294, /*U+0294*/ /**/
+  0x0295, /*U+0295*/ /**/
+  0x0296, /*U+0296*/ /**/
+  0x0297, /*U+0297*/ /**/
+  0x0298, /*U+0298*/ /**/
+  0x0299, /*U+0299*/ /**/
+  0x029A, /*U+029A*/ /**/
+  0x029B, /*U+029B*/ /**/
+  0x029C, /*U+029C*/ /**/
+  0x029D, /*U+029D*/ /**/
+  0x029E, /*U+029E*/ /**/
+  0x029F, /*U+029F*/ /**/
+  0x02A0, /*U+02A0*/ /**/
+  0x02A1, /*U+02A1*/ /**/
+  0x02A2, /*U+02A2*/ /**/
+  0x02A3, /*U+02A3*/ /**/
+  0x02A4, /*U+02A4*/ /**/
+  0x02A5, /*U+02A5*/ /**/
+  0x02A6, /*U+02A6*/ /**/
+  0x02A7, /*U+02A7*/ /**/
+  0x02A8, /*U+02A8*/ /**/
+  0x02A9, /*U+02A9*/ /**/
+  0x02AA, /*U+02AA*/ /**/
+  0x02AB, /*U+02AB*/ /**/
+  0x02AC, /*U+02AC*/ /**/
+  0x02AD, /*U+02AD*/ /**/
+  0x02AE, /*U+02AE*/ /**/
+  0x02AF, /*U+02AF*/ /**/
+  0x02B0, /*U+02B0*/ /**/
+  0x02B1, /*U+02B1*/ /**/
+  0x02B2, /*U+02B2*/ /**/
+  0x02B3, /*U+02B3*/ /**/
+  0x02B4, /*U+02B4*/ /**/
+  0x02B5, /*U+02B5*/ /**/
+  0x02B6, /*U+02B6*/ /**/
+  0x02B7, /*U+02B7*/ /**/
+  0x02B8, /*U+02B8*/ /**/
+  0x02B9, /*U+02B9*/ /**/
+  0x02BA, /*U+02BA*/ /**/
+  0x02BB, /*U+02BB*/ /**/
+  0x02BC, /*U+02BC*/ /**/
+  0x02BD, /*U+02BD*/ /**/
+  0x02BE, /*U+02BE*/ /**/
+  0x02BF, /*U+02BF*/ /**/
+};
+
+static const u_int16_t upper_table_2[640] = {
+  0x0340, /*U+0340*/ /**/
+  0x0341, /*U+0341*/ /**/
+  0x0342, /*U+0342*/ /**/
+  0x0343, /*U+0343*/ /**/
+  0x0344, /*U+0344*/ /**/
+  0x0399, /*U+0345*/ /*COMBINING GREEK YPOGEGRAMMENI*/
+  0x0346, /*U+0346*/ /**/
+  0x0347, /*U+0347*/ /**/
+  0x0348, /*U+0348*/ /**/
+  0x0349, /*U+0349*/ /**/
+  0x034A, /*U+034A*/ /**/
+  0x034B, /*U+034B*/ /**/
+  0x034C, /*U+034C*/ /**/
+  0x034D, /*U+034D*/ /**/
+  0x034E, /*U+034E*/ /**/
+  0x034F, /*U+034F*/ /**/
+  0x0350, /*U+0350*/ /**/
+  0x0351, /*U+0351*/ /**/
+  0x0352, /*U+0352*/ /**/
+  0x0353, /*U+0353*/ /**/
+  0x0354, /*U+0354*/ /**/
+  0x0355, /*U+0355*/ /**/
+  0x0356, /*U+0356*/ /**/
+  0x0357, /*U+0357*/ /**/
+  0x0358, /*U+0358*/ /**/
+  0x0359, /*U+0359*/ /**/
+  0x035A, /*U+035A*/ /**/
+  0x035B, /*U+035B*/ /**/
+  0x035C, /*U+035C*/ /**/
+  0x035D, /*U+035D*/ /**/
+  0x035E, /*U+035E*/ /**/
+  0x035F, /*U+035F*/ /**/
+  0x0360, /*U+0360*/ /**/
+  0x0361, /*U+0361*/ /**/
+  0x0362, /*U+0362*/ /**/
+  0x0363, /*U+0363*/ /**/
+  0x0364, /*U+0364*/ /**/
+  0x0365, /*U+0365*/ /**/
+  0x0366, /*U+0366*/ /**/
+  0x0367, /*U+0367*/ /**/
+  0x0368, /*U+0368*/ /**/
+  0x0369, /*U+0369*/ /**/
+  0x036A, /*U+036A*/ /**/
+  0x036B, /*U+036B*/ /**/
+  0x036C, /*U+036C*/ /**/
+  0x036D, /*U+036D*/ /**/
+  0x036E, /*U+036E*/ /**/
+  0x036F, /*U+036F*/ /**/
+  0x0370, /*U+0370*/ /**/
+  0x0370, /*U+0371*/ /*GREEK SMALL LETTER HETA*/
+  0x0372, /*U+0372*/ /**/
+  0x0372, /*U+0373*/ /*GREEK SMALL LETTER ARCHAIC SAMPI*/
+  0x0374, /*U+0374*/ /**/
+  0x0375, /*U+0375*/ /**/
+  0x0376, /*U+0376*/ /**/
+  0x0376, /*U+0377*/ /*GREEK SMALL LETTER PAMPHYLIAN DIGAMMA*/
+  0x0378, /*U+0378*/ /**/
+  0x0379, /*U+0379*/ /**/
+  0x037A, /*U+037A*/ /**/
+  0x03FD, /*U+037B*/ /*GREEK SMALL REVERSED LUNATE SIGMA SYMBOL*/
+  0x03FE, /*U+037C*/ /*GREEK SMALL DOTTED LUNATE SIGMA SYMBOL*/
+  0x03FF, /*U+037D*/ /*GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL*/
+  0x037E, /*U+037E*/ /**/
+  0x037F, /*U+037F*/ /**/
+  0x0380, /*U+0380*/ /**/
+  0x0381, /*U+0381*/ /**/
+  0x0382, /*U+0382*/ /**/
+  0x0383, /*U+0383*/ /**/
+  0x0384, /*U+0384*/ /**/
+  0x0385, /*U+0385*/ /**/
+  0x0386, /*U+0386*/ /**/
+  0x0387, /*U+0387*/ /**/
+  0x0388, /*U+0388*/ /**/
+  0x0389, /*U+0389*/ /**/
+  0x038A, /*U+038A*/ /**/
+  0x038B, /*U+038B*/ /**/
+  0x038C, /*U+038C*/ /**/
+  0x038D, /*U+038D*/ /**/
+  0x038E, /*U+038E*/ /**/
+  0x038F, /*U+038F*/ /**/
+  0x0390, /*U+0390*/ /**/
+  0x0391, /*U+0391*/ /**/
+  0x0392, /*U+0392*/ /**/
+  0x0393, /*U+0393*/ /**/
+  0x0394, /*U+0394*/ /**/
+  0x0395, /*U+0395*/ /**/
+  0x0396, /*U+0396*/ /**/
+  0x0397, /*U+0397*/ /**/
+  0x0398, /*U+0398*/ /**/
+  0x0399, /*U+0399*/ /**/
+  0x039A, /*U+039A*/ /**/
+  0x039B, /*U+039B*/ /**/
+  0x039C, /*U+039C*/ /**/
+  0x039D, /*U+039D*/ /**/
+  0x039E, /*U+039E*/ /**/
+  0x039F, /*U+039F*/ /**/
+  0x03A0, /*U+03A0*/ /**/
+  0x03A1, /*U+03A1*/ /**/
+  0x03A2, /*U+03A2*/ /**/
+  0x03A3, /*U+03A3*/ /**/
+  0x03A4, /*U+03A4*/ /**/
+  0x03A5, /*U+03A5*/ /**/
+  0x03A6, /*U+03A6*/ /**/
+  0x03A7, /*U+03A7*/ /**/
+  0x03A8, /*U+03A8*/ /**/
+  0x03A9, /*U+03A9*/ /**/
+  0x03AA, /*U+03AA*/ /**/
+  0x03AB, /*U+03AB*/ /**/
+  0x0386, /*U+03AC*/ /*GREEK SMALL LETTER ALPHA WITH TONOS*/
+  0x0388, /*U+03AD*/ /*GREEK SMALL LETTER EPSILON WITH TONOS*/
+  0x0389, /*U+03AE*/ /*GREEK SMALL LETTER ETA WITH TONOS*/
+  0x038A, /*U+03AF*/ /*GREEK SMALL LETTER IOTA WITH TONOS*/
+  0x03B0, /*U+03B0*/ /**/
+  0x0391, /*U+03B1*/ /*GREEK SMALL LETTER ALPHA*/
+  0x0392, /*U+03B2*/ /*GREEK SMALL LETTER BETA*/
+  0x0393, /*U+03B3*/ /*GREEK SMALL LETTER GAMMA*/
+  0x0394, /*U+03B4*/ /*GREEK SMALL LETTER DELTA*/
+  0x0395, /*U+03B5*/ /*GREEK SMALL LETTER EPSILON*/
+  0x0396, /*U+03B6*/ /*GREEK SMALL LETTER ZETA*/
+  0x0397, /*U+03B7*/ /*GREEK SMALL LETTER ETA*/
+  0x0398, /*U+03B8*/ /*GREEK SMALL LETTER THETA*/
+  0x0399, /*U+03B9*/ /*GREEK SMALL LETTER IOTA*/
+  0x039A, /*U+03BA*/ /*GREEK SMALL LETTER KAPPA*/
+  0x039B, /*U+03BB*/ /*GREEK SMALL LETTER LAMDA*/
+  0x039C, /*U+03BC*/ /*GREEK SMALL LETTER MU*/
+  0x039D, /*U+03BD*/ /*GREEK SMALL LETTER NU*/
+  0x039E, /*U+03BE*/ /*GREEK SMALL LETTER XI*/
+  0x039F, /*U+03BF*/ /*GREEK SMALL LETTER OMICRON*/
+  0x03A0, /*U+03C0*/ /*GREEK SMALL LETTER PI*/
+  0x03A1, /*U+03C1*/ /*GREEK SMALL LETTER RHO*/
+  0x03A3, /*U+03C2*/ /*GREEK SMALL LETTER FINAL SIGMA*/
+  0x03A3, /*U+03C3*/ /*GREEK SMALL LETTER SIGMA*/
+  0x03A4, /*U+03C4*/ /*GREEK SMALL LETTER TAU*/
+  0x03A5, /*U+03C5*/ /*GREEK SMALL LETTER UPSILON*/
+  0x03A6, /*U+03C6*/ /*GREEK SMALL LETTER PHI*/
+  0x03A7, /*U+03C7*/ /*GREEK SMALL LETTER CHI*/
+  0x03A8, /*U+03C8*/ /*GREEK SMALL LETTER PSI*/
+  0x03A9, /*U+03C9*/ /*GREEK SMALL LETTER OMEGA*/
+  0x03AA, /*U+03CA*/ /*GREEK SMALL LETTER IOTA WITH DIALYTIKA*/
+  0x03AB, /*U+03CB*/ /*GREEK SMALL LETTER UPSILON WITH DIALYTIKA*/
+  0x038C, /*U+03CC*/ /*GREEK SMALL LETTER OMICRON WITH TONOS*/
+  0x038E, /*U+03CD*/ /*GREEK SMALL LETTER UPSILON WITH TONOS*/
+  0x038F, /*U+03CE*/ /*GREEK SMALL LETTER OMEGA WITH TONOS*/
+  0x03CF, /*U+03CF*/ /**/
+  0x0392, /*U+03D0*/ /*GREEK BETA SYMBOL*/
+  0x0398, /*U+03D1*/ /*GREEK THETA SYMBOL*/
+  0x03D2, /*U+03D2*/ /**/
+  0x03D3, /*U+03D3*/ /**/
+  0x03D4, /*U+03D4*/ /**/
+  0x03A6, /*U+03D5*/ /*GREEK PHI SYMBOL*/
+  0x03A0, /*U+03D6*/ /*GREEK PI SYMBOL*/
+  0x03CF, /*U+03D7*/ /*GREEK KAI SYMBOL*/
+  0x03D8, /*U+03D8*/ /**/
+  0x03D8, /*U+03D9*/ /*GREEK SMALL LETTER ARCHAIC KOPPA*/
+  0x03DA, /*U+03DA*/ /**/
+  0x03DA, /*U+03DB*/ /*GREEK SMALL LETTER STIGMA*/
+  0x03DC, /*U+03DC*/ /**/
+  0x03DC, /*U+03DD*/ /*GREEK SMALL LETTER DIGAMMA*/
+  0x03DE, /*U+03DE*/ /**/
+  0x03DE, /*U+03DF*/ /*GREEK SMALL LETTER KOPPA*/
+  0x03E0, /*U+03E0*/ /**/
+  0x03E0, /*U+03E1*/ /*GREEK SMALL LETTER SAMPI*/
+  0x03E2, /*U+03E2*/ /**/
+  0x03E2, /*U+03E3*/ /*COPTIC SMALL LETTER SHEI*/
+  0x03E4, /*U+03E4*/ /**/
+  0x03E4, /*U+03E5*/ /*COPTIC SMALL LETTER FEI*/
+  0x03E6, /*U+03E6*/ /**/
+  0x03E6, /*U+03E7*/ /*COPTIC SMALL LETTER KHEI*/
+  0x03E8, /*U+03E8*/ /**/
+  0x03E8, /*U+03E9*/ /*COPTIC SMALL LETTER HORI*/
+  0x03EA, /*U+03EA*/ /**/
+  0x03EA, /*U+03EB*/ /*COPTIC SMALL LETTER GANGIA*/
+  0x03EC, /*U+03EC*/ /**/
+  0x03EC, /*U+03ED*/ /*COPTIC SMALL LETTER SHIMA*/
+  0x03EE, /*U+03EE*/ /**/
+  0x03EE, /*U+03EF*/ /*COPTIC SMALL LETTER DEI*/
+  0x039A, /*U+03F0*/ /*GREEK KAPPA SYMBOL*/
+  0x03A1, /*U+03F1*/ /*GREEK RHO SYMBOL*/
+  0x03F9, /*U+03F2*/ /*GREEK LUNATE SIGMA SYMBOL*/
+  0x03F3, /*U+03F3*/ /**/
+  0x03F4, /*U+03F4*/ /**/
+  0x0395, /*U+03F5*/ /*GREEK LUNATE EPSILON SYMBOL*/
+  0x03F6, /*U+03F6*/ /**/
+  0x03F7, /*U+03F7*/ /**/
+  0x03F7, /*U+03F8*/ /*GREEK SMALL LETTER SHO*/
+  0x03F9, /*U+03F9*/ /**/
+  0x03FA, /*U+03FA*/ /**/
+  0x03FA, /*U+03FB*/ /*GREEK SMALL LETTER SAN*/
+  0x03FC, /*U+03FC*/ /**/
+  0x03FD, /*U+03FD*/ /**/
+  0x03FE, /*U+03FE*/ /**/
+  0x03FF, /*U+03FF*/ /**/
+  0x0400, /*U+0400*/ /**/
+  0x0401, /*U+0401*/ /**/
+  0x0402, /*U+0402*/ /**/
+  0x0403, /*U+0403*/ /**/
+  0x0404, /*U+0404*/ /**/
+  0x0405, /*U+0405*/ /**/
+  0x0406, /*U+0406*/ /**/
+  0x0407, /*U+0407*/ /**/
+  0x0408, /*U+0408*/ /**/
+  0x0409, /*U+0409*/ /**/
+  0x040A, /*U+040A*/ /**/
+  0x040B, /*U+040B*/ /**/
+  0x040C, /*U+040C*/ /**/
+  0x040D, /*U+040D*/ /**/
+  0x040E, /*U+040E*/ /**/
+  0x040F, /*U+040F*/ /**/
+  0x0410, /*U+0410*/ /**/
+  0x0411, /*U+0411*/ /**/
+  0x0412, /*U+0412*/ /**/
+  0x0413, /*U+0413*/ /**/
+  0x0414, /*U+0414*/ /**/
+  0x0415, /*U+0415*/ /**/
+  0x0416, /*U+0416*/ /**/
+  0x0417, /*U+0417*/ /**/
+  0x0418, /*U+0418*/ /**/
+  0x0419, /*U+0419*/ /**/
+  0x041A, /*U+041A*/ /**/
+  0x041B, /*U+041B*/ /**/
+  0x041C, /*U+041C*/ /**/
+  0x041D, /*U+041D*/ /**/
+  0x041E, /*U+041E*/ /**/
+  0x041F, /*U+041F*/ /**/
+  0x0420, /*U+0420*/ /**/
+  0x0421, /*U+0421*/ /**/
+  0x0422, /*U+0422*/ /**/
+  0x0423, /*U+0423*/ /**/
+  0x0424, /*U+0424*/ /**/
+  0x0425, /*U+0425*/ /**/
+  0x0426, /*U+0426*/ /**/
+  0x0427, /*U+0427*/ /**/
+  0x0428, /*U+0428*/ /**/
+  0x0429, /*U+0429*/ /**/
+  0x042A, /*U+042A*/ /**/
+  0x042B, /*U+042B*/ /**/
+  0x042C, /*U+042C*/ /**/
+  0x042D, /*U+042D*/ /**/
+  0x042E, /*U+042E*/ /**/
+  0x042F, /*U+042F*/ /**/
+  0x0410, /*U+0430*/ /*CYRILLIC SMALL LETTER A*/
+  0x0411, /*U+0431*/ /*CYRILLIC SMALL LETTER BE*/
+  0x0412, /*U+0432*/ /*CYRILLIC SMALL LETTER VE*/
+  0x0413, /*U+0433*/ /*CYRILLIC SMALL LETTER GHE*/
+  0x0414, /*U+0434*/ /*CYRILLIC SMALL LETTER DE*/
+  0x0415, /*U+0435*/ /*CYRILLIC SMALL LETTER IE*/
+  0x0416, /*U+0436*/ /*CYRILLIC SMALL LETTER ZHE*/
+  0x0417, /*U+0437*/ /*CYRILLIC SMALL LETTER ZE*/
+  0x0418, /*U+0438*/ /*CYRILLIC SMALL LETTER I*/
+  0x0419, /*U+0439*/ /*CYRILLIC SMALL LETTER SHORT I*/
+  0x041A, /*U+043A*/ /*CYRILLIC SMALL LETTER KA*/
+  0x041B, /*U+043B*/ /*CYRILLIC SMALL LETTER EL*/
+  0x041C, /*U+043C*/ /*CYRILLIC SMALL LETTER EM*/
+  0x041D, /*U+043D*/ /*CYRILLIC SMALL LETTER EN*/
+  0x041E, /*U+043E*/ /*CYRILLIC SMALL LETTER O*/
+  0x041F, /*U+043F*/ /*CYRILLIC SMALL LETTER PE*/
+  0x0420, /*U+0440*/ /*CYRILLIC SMALL LETTER ER*/
+  0x0421, /*U+0441*/ /*CYRILLIC SMALL LETTER ES*/
+  0x0422, /*U+0442*/ /*CYRILLIC SMALL LETTER TE*/
+  0x0423, /*U+0443*/ /*CYRILLIC SMALL LETTER U*/
+  0x0424, /*U+0444*/ /*CYRILLIC SMALL LETTER EF*/
+  0x0425, /*U+0445*/ /*CYRILLIC SMALL LETTER HA*/
+  0x0426, /*U+0446*/ /*CYRILLIC SMALL LETTER TSE*/
+  0x0427, /*U+0447*/ /*CYRILLIC SMALL LETTER CHE*/
+  0x0428, /*U+0448*/ /*CYRILLIC SMALL LETTER SHA*/
+  0x0429, /*U+0449*/ /*CYRILLIC SMALL LETTER SHCHA*/
+  0x042A, /*U+044A*/ /*CYRILLIC SMALL LETTER HARD SIGN*/
+  0x042B, /*U+044B*/ /*CYRILLIC SMALL LETTER YERU*/
+  0x042C, /*U+044C*/ /*CYRILLIC SMALL LETTER SOFT SIGN*/
+  0x042D, /*U+044D*/ /*CYRILLIC SMALL LETTER E*/
+  0x042E, /*U+044E*/ /*CYRILLIC SMALL LETTER YU*/
+  0x042F, /*U+044F*/ /*CYRILLIC SMALL LETTER YA*/
+  0x0400, /*U+0450*/ /*CYRILLIC SMALL LETTER IE WITH GRAVE*/
+  0x0401, /*U+0451*/ /*CYRILLIC SMALL LETTER IO*/
+  0x0402, /*U+0452*/ /*CYRILLIC SMALL LETTER DJE*/
+  0x0403, /*U+0453*/ /*CYRILLIC SMALL LETTER GJE*/
+  0x0404, /*U+0454*/ /*CYRILLIC SMALL LETTER UKRAINIAN IE*/
+  0x0405, /*U+0455*/ /*CYRILLIC SMALL LETTER DZE*/
+  0x0406, /*U+0456*/ /*CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I*/
+  0x0407, /*U+0457*/ /*CYRILLIC SMALL LETTER YI*/
+  0x0408, /*U+0458*/ /*CYRILLIC SMALL LETTER JE*/
+  0x0409, /*U+0459*/ /*CYRILLIC SMALL LETTER LJE*/
+  0x040A, /*U+045A*/ /*CYRILLIC SMALL LETTER NJE*/
+  0x040B, /*U+045B*/ /*CYRILLIC SMALL LETTER TSHE*/
+  0x040C, /*U+045C*/ /*CYRILLIC SMALL LETTER KJE*/
+  0x040D, /*U+045D*/ /*CYRILLIC SMALL LETTER I WITH GRAVE*/
+  0x040E, /*U+045E*/ /*CYRILLIC SMALL LETTER SHORT U*/
+  0x040F, /*U+045F*/ /*CYRILLIC SMALL LETTER DZHE*/
+  0x0460, /*U+0460*/ /**/
+  0x0460, /*U+0461*/ /*CYRILLIC SMALL LETTER OMEGA*/
+  0x0462, /*U+0462*/ /**/
+  0x0462, /*U+0463*/ /*CYRILLIC SMALL LETTER YAT*/
+  0x0464, /*U+0464*/ /**/
+  0x0464, /*U+0465*/ /*CYRILLIC SMALL LETTER IOTIFIED E*/
+  0x0466, /*U+0466*/ /**/
+  0x0466, /*U+0467*/ /*CYRILLIC SMALL LETTER LITTLE YUS*/
+  0x0468, /*U+0468*/ /**/
+  0x0468, /*U+0469*/ /*CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS*/
+  0x046A, /*U+046A*/ /**/
+  0x046A, /*U+046B*/ /*CYRILLIC SMALL LETTER BIG YUS*/
+  0x046C, /*U+046C*/ /**/
+  0x046C, /*U+046D*/ /*CYRILLIC SMALL LETTER IOTIFIED BIG YUS*/
+  0x046E, /*U+046E*/ /**/
+  0x046E, /*U+046F*/ /*CYRILLIC SMALL LETTER KSI*/
+  0x0470, /*U+0470*/ /**/
+  0x0470, /*U+0471*/ /*CYRILLIC SMALL LETTER PSI*/
+  0x0472, /*U+0472*/ /**/
+  0x0472, /*U+0473*/ /*CYRILLIC SMALL LETTER FITA*/
+  0x0474, /*U+0474*/ /**/
+  0x0474, /*U+0475*/ /*CYRILLIC SMALL LETTER IZHITSA*/
+  0x0476, /*U+0476*/ /**/
+  0x0476, /*U+0477*/ /*CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/
+  0x0478, /*U+0478*/ /**/
+  0x0478, /*U+0479*/ /*CYRILLIC SMALL LETTER UK*/
+  0x047A, /*U+047A*/ /**/
+  0x047A, /*U+047B*/ /*CYRILLIC SMALL LETTER ROUND OMEGA*/
+  0x047C, /*U+047C*/ /**/
+  0x047C, /*U+047D*/ /*CYRILLIC SMALL LETTER OMEGA WITH TITLO*/
+  0x047E, /*U+047E*/ /**/
+  0x047E, /*U+047F*/ /*CYRILLIC SMALL LETTER OT*/
+  0x0480, /*U+0480*/ /**/
+  0x0480, /*U+0481*/ /*CYRILLIC SMALL LETTER KOPPA*/
+  0x0482, /*U+0482*/ /**/
+  0x0483, /*U+0483*/ /**/
+  0x0484, /*U+0484*/ /**/
+  0x0485, /*U+0485*/ /**/
+  0x0486, /*U+0486*/ /**/
+  0x0487, /*U+0487*/ /**/
+  0x0488, /*U+0488*/ /**/
+  0x0489, /*U+0489*/ /**/
+  0x048A, /*U+048A*/ /**/
+  0x048A, /*U+048B*/ /*CYRILLIC SMALL LETTER SHORT I WITH TAIL*/
+  0x048C, /*U+048C*/ /**/
+  0x048C, /*U+048D*/ /*CYRILLIC SMALL LETTER SEMISOFT SIGN*/
+  0x048E, /*U+048E*/ /**/
+  0x048E, /*U+048F*/ /*CYRILLIC SMALL LETTER ER WITH TICK*/
+  0x0490, /*U+0490*/ /**/
+  0x0490, /*U+0491*/ /*CYRILLIC SMALL LETTER GHE WITH UPTURN*/
+  0x0492, /*U+0492*/ /**/
+  0x0492, /*U+0493*/ /*CYRILLIC SMALL LETTER GHE WITH STROKE*/
+  0x0494, /*U+0494*/ /**/
+  0x0494, /*U+0495*/ /*CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK*/
+  0x0496, /*U+0496*/ /**/
+  0x0496, /*U+0497*/ /*CYRILLIC SMALL LETTER ZHE WITH DESCENDER*/
+  0x0498, /*U+0498*/ /**/
+  0x0498, /*U+0499*/ /*CYRILLIC SMALL LETTER ZE WITH DESCENDER*/
+  0x049A, /*U+049A*/ /**/
+  0x049A, /*U+049B*/ /*CYRILLIC SMALL LETTER KA WITH DESCENDER*/
+  0x049C, /*U+049C*/ /**/
+  0x049C, /*U+049D*/ /*CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE*/
+  0x049E, /*U+049E*/ /**/
+  0x049E, /*U+049F*/ /*CYRILLIC SMALL LETTER KA WITH STROKE*/
+  0x04A0, /*U+04A0*/ /**/
+  0x04A0, /*U+04A1*/ /*CYRILLIC SMALL LETTER BASHKIR KA*/
+  0x04A2, /*U+04A2*/ /**/
+  0x04A2, /*U+04A3*/ /*CYRILLIC SMALL LETTER EN WITH DESCENDER*/
+  0x04A4, /*U+04A4*/ /**/
+  0x04A4, /*U+04A5*/ /*CYRILLIC SMALL LIGATURE EN GHE*/
+  0x04A6, /*U+04A6*/ /**/
+  0x04A6, /*U+04A7*/ /*CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK*/
+  0x04A8, /*U+04A8*/ /**/
+  0x04A8, /*U+04A9*/ /*CYRILLIC SMALL LETTER ABKHASIAN HA*/
+  0x04AA, /*U+04AA*/ /**/
+  0x04AA, /*U+04AB*/ /*CYRILLIC SMALL LETTER ES WITH DESCENDER*/
+  0x04AC, /*U+04AC*/ /**/
+  0x04AC, /*U+04AD*/ /*CYRILLIC SMALL LETTER TE WITH DESCENDER*/
+  0x04AE, /*U+04AE*/ /**/
+  0x04AE, /*U+04AF*/ /*CYRILLIC SMALL LETTER STRAIGHT U*/
+  0x04B0, /*U+04B0*/ /**/
+  0x04B0, /*U+04B1*/ /*CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE*/
+  0x04B2, /*U+04B2*/ /**/
+  0x04B2, /*U+04B3*/ /*CYRILLIC SMALL LETTER HA WITH DESCENDER*/
+  0x04B4, /*U+04B4*/ /**/
+  0x04B4, /*U+04B5*/ /*CYRILLIC SMALL LIGATURE TE TSE*/
+  0x04B6, /*U+04B6*/ /**/
+  0x04B6, /*U+04B7*/ /*CYRILLIC SMALL LETTER CHE WITH DESCENDER*/
+  0x04B8, /*U+04B8*/ /**/
+  0x04B8, /*U+04B9*/ /*CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE*/
+  0x04BA, /*U+04BA*/ /**/
+  0x04BA, /*U+04BB*/ /*CYRILLIC SMALL LETTER SHHA*/
+  0x04BC, /*U+04BC*/ /**/
+  0x04BC, /*U+04BD*/ /*CYRILLIC SMALL LETTER ABKHASIAN CHE*/
+  0x04BE, /*U+04BE*/ /**/
+  0x04BE, /*U+04BF*/ /*CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER*/
+  0x04C0, /*U+04C0*/ /**/
+  0x04C1, /*U+04C1*/ /**/
+  0x04C1, /*U+04C2*/ /*CYRILLIC SMALL LETTER ZHE WITH BREVE*/
+  0x04C3, /*U+04C3*/ /**/
+  0x04C3, /*U+04C4*/ /*CYRILLIC SMALL LETTER KA WITH HOOK*/
+  0x04C5, /*U+04C5*/ /**/
+  0x04C5, /*U+04C6*/ /*CYRILLIC SMALL LETTER EL WITH TAIL*/
+  0x04C7, /*U+04C7*/ /**/
+  0x04C7, /*U+04C8*/ /*CYRILLIC SMALL LETTER EN WITH HOOK*/
+  0x04C9, /*U+04C9*/ /**/
+  0x04C9, /*U+04CA*/ /*CYRILLIC SMALL LETTER EN WITH TAIL*/
+  0x04CB, /*U+04CB*/ /**/
+  0x04CB, /*U+04CC*/ /*CYRILLIC SMALL LETTER KHAKASSIAN CHE*/
+  0x04CD, /*U+04CD*/ /**/
+  0x04CD, /*U+04CE*/ /*CYRILLIC SMALL LETTER EM WITH TAIL*/
+  0x04C0, /*U+04CF*/ /*CYRILLIC SMALL LETTER PALOCHKA*/
+  0x04D0, /*U+04D0*/ /**/
+  0x04D0, /*U+04D1*/ /*CYRILLIC SMALL LETTER A WITH BREVE*/
+  0x04D2, /*U+04D2*/ /**/
+  0x04D2, /*U+04D3*/ /*CYRILLIC SMALL LETTER A WITH DIAERESIS*/
+  0x04D4, /*U+04D4*/ /**/
+  0x04D4, /*U+04D5*/ /*CYRILLIC SMALL LIGATURE A IE*/
+  0x04D6, /*U+04D6*/ /**/
+  0x04D6, /*U+04D7*/ /*CYRILLIC SMALL LETTER IE WITH BREVE*/
+  0x04D8, /*U+04D8*/ /**/
+  0x04D8, /*U+04D9*/ /*CYRILLIC SMALL LETTER SCHWA*/
+  0x04DA, /*U+04DA*/ /**/
+  0x04DA, /*U+04DB*/ /*CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS*/
+  0x04DC, /*U+04DC*/ /**/
+  0x04DC, /*U+04DD*/ /*CYRILLIC SMALL LETTER ZHE WITH DIAERESIS*/
+  0x04DE, /*U+04DE*/ /**/
+  0x04DE, /*U+04DF*/ /*CYRILLIC SMALL LETTER ZE WITH DIAERESIS*/
+  0x04E0, /*U+04E0*/ /**/
+  0x04E0, /*U+04E1*/ /*CYRILLIC SMALL LETTER ABKHASIAN DZE*/
+  0x04E2, /*U+04E2*/ /**/
+  0x04E2, /*U+04E3*/ /*CYRILLIC SMALL LETTER I WITH MACRON*/
+  0x04E4, /*U+04E4*/ /**/
+  0x04E4, /*U+04E5*/ /*CYRILLIC SMALL LETTER I WITH DIAERESIS*/
+  0x04E6, /*U+04E6*/ /**/
+  0x04E6, /*U+04E7*/ /*CYRILLIC SMALL LETTER O WITH DIAERESIS*/
+  0x04E8, /*U+04E8*/ /**/
+  0x04E8, /*U+04E9*/ /*CYRILLIC SMALL LETTER BARRED O*/
+  0x04EA, /*U+04EA*/ /**/
+  0x04EA, /*U+04EB*/ /*CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS*/
+  0x04EC, /*U+04EC*/ /**/
+  0x04EC, /*U+04ED*/ /*CYRILLIC SMALL LETTER E WITH DIAERESIS*/
+  0x04EE, /*U+04EE*/ /**/
+  0x04EE, /*U+04EF*/ /*CYRILLIC SMALL LETTER U WITH MACRON*/
+  0x04F0, /*U+04F0*/ /**/
+  0x04F0, /*U+04F1*/ /*CYRILLIC SMALL LETTER U WITH DIAERESIS*/
+  0x04F2, /*U+04F2*/ /**/
+  0x04F2, /*U+04F3*/ /*CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE*/
+  0x04F4, /*U+04F4*/ /**/
+  0x04F4, /*U+04F5*/ /*CYRILLIC SMALL LETTER CHE WITH DIAERESIS*/
+  0x04F6, /*U+04F6*/ /**/
+  0x04F6, /*U+04F7*/ /*CYRILLIC SMALL LETTER GHE WITH DESCENDER*/
+  0x04F8, /*U+04F8*/ /**/
+  0x04F8, /*U+04F9*/ /*CYRILLIC SMALL LETTER YERU WITH DIAERESIS*/
+  0x04FA, /*U+04FA*/ /**/
+  0x04FA, /*U+04FB*/ /*CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK*/
+  0x04FC, /*U+04FC*/ /**/
+  0x04FC, /*U+04FD*/ /*CYRILLIC SMALL LETTER HA WITH HOOK*/
+  0x04FE, /*U+04FE*/ /**/
+  0x04FE, /*U+04FF*/ /*CYRILLIC SMALL LETTER HA WITH STROKE*/
+  0x0500, /*U+0500*/ /**/
+  0x0500, /*U+0501*/ /*CYRILLIC SMALL LETTER KOMI DE*/
+  0x0502, /*U+0502*/ /**/
+  0x0502, /*U+0503*/ /*CYRILLIC SMALL LETTER KOMI DJE*/
+  0x0504, /*U+0504*/ /**/
+  0x0504, /*U+0505*/ /*CYRILLIC SMALL LETTER KOMI ZJE*/
+  0x0506, /*U+0506*/ /**/
+  0x0506, /*U+0507*/ /*CYRILLIC SMALL LETTER KOMI DZJE*/
+  0x0508, /*U+0508*/ /**/
+  0x0508, /*U+0509*/ /*CYRILLIC SMALL LETTER KOMI LJE*/
+  0x050A, /*U+050A*/ /**/
+  0x050A, /*U+050B*/ /*CYRILLIC SMALL LETTER KOMI NJE*/
+  0x050C, /*U+050C*/ /**/
+  0x050C, /*U+050D*/ /*CYRILLIC SMALL LETTER KOMI SJE*/
+  0x050E, /*U+050E*/ /**/
+  0x050E, /*U+050F*/ /*CYRILLIC SMALL LETTER KOMI TJE*/
+  0x0510, /*U+0510*/ /**/
+  0x0510, /*U+0511*/ /*CYRILLIC SMALL LETTER REVERSED ZE*/
+  0x0512, /*U+0512*/ /**/
+  0x0512, /*U+0513*/ /*CYRILLIC SMALL LETTER EL WITH HOOK*/
+  0x0514, /*U+0514*/ /**/
+  0x0514, /*U+0515*/ /*CYRILLIC SMALL LETTER LHA*/
+  0x0516, /*U+0516*/ /**/
+  0x0516, /*U+0517*/ /*CYRILLIC SMALL LETTER RHA*/
+  0x0518, /*U+0518*/ /**/
+  0x0518, /*U+0519*/ /*CYRILLIC SMALL LETTER YAE*/
+  0x051A, /*U+051A*/ /**/
+  0x051A, /*U+051B*/ /*CYRILLIC SMALL LETTER QA*/
+  0x051C, /*U+051C*/ /**/
+  0x051C, /*U+051D*/ /*CYRILLIC SMALL LETTER WE*/
+  0x051E, /*U+051E*/ /**/
+  0x051E, /*U+051F*/ /*CYRILLIC SMALL LETTER ALEUT KA*/
+  0x0520, /*U+0520*/ /**/
+  0x0520, /*U+0521*/ /*CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK*/
+  0x0522, /*U+0522*/ /**/
+  0x0522, /*U+0523*/ /*CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK*/
+  0x0524, /*U+0524*/ /**/
+  0x0524, /*U+0525*/ /*CYRILLIC SMALL LETTER PE WITH DESCENDER*/
+  0x0526, /*U+0526*/ /**/
+  0x0526, /*U+0527*/ /*CYRILLIC SMALL LETTER SHHA WITH DESCENDER*/
+  0x0528, /*U+0528*/ /**/
+  0x0529, /*U+0529*/ /**/
+  0x052A, /*U+052A*/ /**/
+  0x052B, /*U+052B*/ /**/
+  0x052C, /*U+052C*/ /**/
+  0x052D, /*U+052D*/ /**/
+  0x052E, /*U+052E*/ /**/
+  0x052F, /*U+052F*/ /**/
+  0x0530, /*U+0530*/ /**/
+  0x0531, /*U+0531*/ /**/
+  0x0532, /*U+0532*/ /**/
+  0x0533, /*U+0533*/ /**/
+  0x0534, /*U+0534*/ /**/
+  0x0535, /*U+0535*/ /**/
+  0x0536, /*U+0536*/ /**/
+  0x0537, /*U+0537*/ /**/
+  0x0538, /*U+0538*/ /**/
+  0x0539, /*U+0539*/ /**/
+  0x053A, /*U+053A*/ /**/
+  0x053B, /*U+053B*/ /**/
+  0x053C, /*U+053C*/ /**/
+  0x053D, /*U+053D*/ /**/
+  0x053E, /*U+053E*/ /**/
+  0x053F, /*U+053F*/ /**/
+  0x0540, /*U+0540*/ /**/
+  0x0541, /*U+0541*/ /**/
+  0x0542, /*U+0542*/ /**/
+  0x0543, /*U+0543*/ /**/
+  0x0544, /*U+0544*/ /**/
+  0x0545, /*U+0545*/ /**/
+  0x0546, /*U+0546*/ /**/
+  0x0547, /*U+0547*/ /**/
+  0x0548, /*U+0548*/ /**/
+  0x0549, /*U+0549*/ /**/
+  0x054A, /*U+054A*/ /**/
+  0x054B, /*U+054B*/ /**/
+  0x054C, /*U+054C*/ /**/
+  0x054D, /*U+054D*/ /**/
+  0x054E, /*U+054E*/ /**/
+  0x054F, /*U+054F*/ /**/
+  0x0550, /*U+0550*/ /**/
+  0x0551, /*U+0551*/ /**/
+  0x0552, /*U+0552*/ /**/
+  0x0553, /*U+0553*/ /**/
+  0x0554, /*U+0554*/ /**/
+  0x0555, /*U+0555*/ /**/
+  0x0556, /*U+0556*/ /**/
+  0x0557, /*U+0557*/ /**/
+  0x0558, /*U+0558*/ /**/
+  0x0559, /*U+0559*/ /**/
+  0x055A, /*U+055A*/ /**/
+  0x055B, /*U+055B*/ /**/
+  0x055C, /*U+055C*/ /**/
+  0x055D, /*U+055D*/ /**/
+  0x055E, /*U+055E*/ /**/
+  0x055F, /*U+055F*/ /**/
+  0x0560, /*U+0560*/ /**/
+  0x0531, /*U+0561*/ /*ARMENIAN SMALL LETTER AYB*/
+  0x0532, /*U+0562*/ /*ARMENIAN SMALL LETTER BEN*/
+  0x0533, /*U+0563*/ /*ARMENIAN SMALL LETTER GIM*/
+  0x0534, /*U+0564*/ /*ARMENIAN SMALL LETTER DA*/
+  0x0535, /*U+0565*/ /*ARMENIAN SMALL LETTER ECH*/
+  0x0536, /*U+0566*/ /*ARMENIAN SMALL LETTER ZA*/
+  0x0537, /*U+0567*/ /*ARMENIAN SMALL LETTER EH*/
+  0x0538, /*U+0568*/ /*ARMENIAN SMALL LETTER ET*/
+  0x0539, /*U+0569*/ /*ARMENIAN SMALL LETTER TO*/
+  0x053A, /*U+056A*/ /*ARMENIAN SMALL LETTER ZHE*/
+  0x053B, /*U+056B*/ /*ARMENIAN SMALL LETTER INI*/
+  0x053C, /*U+056C*/ /*ARMENIAN SMALL LETTER LIWN*/
+  0x053D, /*U+056D*/ /*ARMENIAN SMALL LETTER XEH*/
+  0x053E, /*U+056E*/ /*ARMENIAN SMALL LETTER CA*/
+  0x053F, /*U+056F*/ /*ARMENIAN SMALL LETTER KEN*/
+  0x0540, /*U+0570*/ /*ARMENIAN SMALL LETTER HO*/
+  0x0541, /*U+0571*/ /*ARMENIAN SMALL LETTER JA*/
+  0x0542, /*U+0572*/ /*ARMENIAN SMALL LETTER GHAD*/
+  0x0543, /*U+0573*/ /*ARMENIAN SMALL LETTER CHEH*/
+  0x0544, /*U+0574*/ /*ARMENIAN SMALL LETTER MEN*/
+  0x0545, /*U+0575*/ /*ARMENIAN SMALL LETTER YI*/
+  0x0546, /*U+0576*/ /*ARMENIAN SMALL LETTER NOW*/
+  0x0547, /*U+0577*/ /*ARMENIAN SMALL LETTER SHA*/
+  0x0548, /*U+0578*/ /*ARMENIAN SMALL LETTER VO*/
+  0x0549, /*U+0579*/ /*ARMENIAN SMALL LETTER CHA*/
+  0x054A, /*U+057A*/ /*ARMENIAN SMALL LETTER PEH*/
+  0x054B, /*U+057B*/ /*ARMENIAN SMALL LETTER JHEH*/
+  0x054C, /*U+057C*/ /*ARMENIAN SMALL LETTER RA*/
+  0x054D, /*U+057D*/ /*ARMENIAN SMALL LETTER SEH*/
+  0x054E, /*U+057E*/ /*ARMENIAN SMALL LETTER VEW*/
+  0x054F, /*U+057F*/ /*ARMENIAN SMALL LETTER TIWN*/
+  0x0550, /*U+0580*/ /*ARMENIAN SMALL LETTER REH*/
+  0x0551, /*U+0581*/ /*ARMENIAN SMALL LETTER CO*/
+  0x0552, /*U+0582*/ /*ARMENIAN SMALL LETTER YIWN*/
+  0x0553, /*U+0583*/ /*ARMENIAN SMALL LETTER PIWR*/
+  0x0554, /*U+0584*/ /*ARMENIAN SMALL LETTER KEH*/
+  0x0555, /*U+0585*/ /*ARMENIAN SMALL LETTER OH*/
+  0x0556, /*U+0586*/ /*ARMENIAN SMALL LETTER FEH*/
+  0x0587, /*U+0587*/ /**/
+  0x0588, /*U+0588*/ /**/
+  0x0589, /*U+0589*/ /**/
+  0x058A, /*U+058A*/ /**/
+  0x058B, /*U+058B*/ /**/
+  0x058C, /*U+058C*/ /**/
+  0x058D, /*U+058D*/ /**/
+  0x058E, /*U+058E*/ /**/
+  0x058F, /*U+058F*/ /**/
+  0x0590, /*U+0590*/ /**/
+  0x0591, /*U+0591*/ /**/
+  0x0592, /*U+0592*/ /**/
+  0x0593, /*U+0593*/ /**/
+  0x0594, /*U+0594*/ /**/
+  0x0595, /*U+0595*/ /**/
+  0x0596, /*U+0596*/ /**/
+  0x0597, /*U+0597*/ /**/
+  0x0598, /*U+0598*/ /**/
+  0x0599, /*U+0599*/ /**/
+  0x059A, /*U+059A*/ /**/
+  0x059B, /*U+059B*/ /**/
+  0x059C, /*U+059C*/ /**/
+  0x059D, /*U+059D*/ /**/
+  0x059E, /*U+059E*/ /**/
+  0x059F, /*U+059F*/ /**/
+  0x05A0, /*U+05A0*/ /**/
+  0x05A1, /*U+05A1*/ /**/
+  0x05A2, /*U+05A2*/ /**/
+  0x05A3, /*U+05A3*/ /**/
+  0x05A4, /*U+05A4*/ /**/
+  0x05A5, /*U+05A5*/ /**/
+  0x05A6, /*U+05A6*/ /**/
+  0x05A7, /*U+05A7*/ /**/
+  0x05A8, /*U+05A8*/ /**/
+  0x05A9, /*U+05A9*/ /**/
+  0x05AA, /*U+05AA*/ /**/
+  0x05AB, /*U+05AB*/ /**/
+  0x05AC, /*U+05AC*/ /**/
+  0x05AD, /*U+05AD*/ /**/
+  0x05AE, /*U+05AE*/ /**/
+  0x05AF, /*U+05AF*/ /**/
+  0x05B0, /*U+05B0*/ /**/
+  0x05B1, /*U+05B1*/ /**/
+  0x05B2, /*U+05B2*/ /**/
+  0x05B3, /*U+05B3*/ /**/
+  0x05B4, /*U+05B4*/ /**/
+  0x05B5, /*U+05B5*/ /**/
+  0x05B6, /*U+05B6*/ /**/
+  0x05B7, /*U+05B7*/ /**/
+  0x05B8, /*U+05B8*/ /**/
+  0x05B9, /*U+05B9*/ /**/
+  0x05BA, /*U+05BA*/ /**/
+  0x05BB, /*U+05BB*/ /**/
+  0x05BC, /*U+05BC*/ /**/
+  0x05BD, /*U+05BD*/ /**/
+  0x05BE, /*U+05BE*/ /**/
+  0x05BF, /*U+05BF*/ /**/
+};
+
+static const u_int16_t upper_table_3[64] = {
+  0x1D40, /*U+1D40*/ /**/
+  0x1D41, /*U+1D41*/ /**/
+  0x1D42, /*U+1D42*/ /**/
+  0x1D43, /*U+1D43*/ /**/
+  0x1D44, /*U+1D44*/ /**/
+  0x1D45, /*U+1D45*/ /**/
+  0x1D46, /*U+1D46*/ /**/
+  0x1D47, /*U+1D47*/ /**/
+  0x1D48, /*U+1D48*/ /**/
+  0x1D49, /*U+1D49*/ /**/
+  0x1D4A, /*U+1D4A*/ /**/
+  0x1D4B, /*U+1D4B*/ /**/
+  0x1D4C, /*U+1D4C*/ /**/
+  0x1D4D, /*U+1D4D*/ /**/
+  0x1D4E, /*U+1D4E*/ /**/
+  0x1D4F, /*U+1D4F*/ /**/
+  0x1D50, /*U+1D50*/ /**/
+  0x1D51, /*U+1D51*/ /**/
+  0x1D52, /*U+1D52*/ /**/
+  0x1D53, /*U+1D53*/ /**/
+  0x1D54, /*U+1D54*/ /**/
+  0x1D55, /*U+1D55*/ /**/
+  0x1D56, /*U+1D56*/ /**/
+  0x1D57, /*U+1D57*/ /**/
+  0x1D58, /*U+1D58*/ /**/
+  0x1D59, /*U+1D59*/ /**/
+  0x1D5A, /*U+1D5A*/ /**/
+  0x1D5B, /*U+1D5B*/ /**/
+  0x1D5C, /*U+1D5C*/ /**/
+  0x1D5D, /*U+1D5D*/ /**/
+  0x1D5E, /*U+1D5E*/ /**/
+  0x1D5F, /*U+1D5F*/ /**/
+  0x1D60, /*U+1D60*/ /**/
+  0x1D61, /*U+1D61*/ /**/
+  0x1D62, /*U+1D62*/ /**/
+  0x1D63, /*U+1D63*/ /**/
+  0x1D64, /*U+1D64*/ /**/
+  0x1D65, /*U+1D65*/ /**/
+  0x1D66, /*U+1D66*/ /**/
+  0x1D67, /*U+1D67*/ /**/
+  0x1D68, /*U+1D68*/ /**/
+  0x1D69, /*U+1D69*/ /**/
+  0x1D6A, /*U+1D6A*/ /**/
+  0x1D6B, /*U+1D6B*/ /**/
+  0x1D6C, /*U+1D6C*/ /**/
+  0x1D6D, /*U+1D6D*/ /**/
+  0x1D6E, /*U+1D6E*/ /**/
+  0x1D6F, /*U+1D6F*/ /**/
+  0x1D70, /*U+1D70*/ /**/
+  0x1D71, /*U+1D71*/ /**/
+  0x1D72, /*U+1D72*/ /**/
+  0x1D73, /*U+1D73*/ /**/
+  0x1D74, /*U+1D74*/ /**/
+  0x1D75, /*U+1D75*/ /**/
+  0x1D76, /*U+1D76*/ /**/
+  0x1D77, /*U+1D77*/ /**/
+  0x1D78, /*U+1D78*/ /**/
+  0xA77D, /*U+1D79*/ /*LATIN SMALL LETTER INSULAR G*/
+  0x1D7A, /*U+1D7A*/ /**/
+  0x1D7B, /*U+1D7B*/ /**/
+  0x1D7C, /*U+1D7C*/ /**/
+  0x2C63, /*U+1D7D*/ /*LATIN SMALL LETTER P WITH STROKE*/
+  0x1D7E, /*U+1D7E*/ /**/
+  0x1D7F, /*U+1D7F*/ /**/
+};
+
+static const u_int16_t upper_table_4[512] = {
+  0x1E00, /*U+1E00*/ /**/
+  0x1E00, /*U+1E01*/ /*LATIN SMALL LETTER A WITH RING BELOW*/
+  0x1E02, /*U+1E02*/ /**/
+  0x1E02, /*U+1E03*/ /*LATIN SMALL LETTER B WITH DOT ABOVE*/
+  0x1E04, /*U+1E04*/ /**/
+  0x1E04, /*U+1E05*/ /*LATIN SMALL LETTER B WITH DOT BELOW*/
+  0x1E06, /*U+1E06*/ /**/
+  0x1E06, /*U+1E07*/ /*LATIN SMALL LETTER B WITH LINE BELOW*/
+  0x1E08, /*U+1E08*/ /**/
+  0x1E08, /*U+1E09*/ /*LATIN SMALL LETTER C WITH CEDILLA AND ACUTE*/
+  0x1E0A, /*U+1E0A*/ /**/
+  0x1E0A, /*U+1E0B*/ /*LATIN SMALL LETTER D WITH DOT ABOVE*/
+  0x1E0C, /*U+1E0C*/ /**/
+  0x1E0C, /*U+1E0D*/ /*LATIN SMALL LETTER D WITH DOT BELOW*/
+  0x1E0E, /*U+1E0E*/ /**/
+  0x1E0E, /*U+1E0F*/ /*LATIN SMALL LETTER D WITH LINE BELOW*/
+  0x1E10, /*U+1E10*/ /**/
+  0x1E10, /*U+1E11*/ /*LATIN SMALL LETTER D WITH CEDILLA*/
+  0x1E12, /*U+1E12*/ /**/
+  0x1E12, /*U+1E13*/ /*LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW*/
+  0x1E14, /*U+1E14*/ /**/
+  0x1E14, /*U+1E15*/ /*LATIN SMALL LETTER E WITH MACRON AND GRAVE*/
+  0x1E16, /*U+1E16*/ /**/
+  0x1E16, /*U+1E17*/ /*LATIN SMALL LETTER E WITH MACRON AND ACUTE*/
+  0x1E18, /*U+1E18*/ /**/
+  0x1E18, /*U+1E19*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW*/
+  0x1E1A, /*U+1E1A*/ /**/
+  0x1E1A, /*U+1E1B*/ /*LATIN SMALL LETTER E WITH TILDE BELOW*/
+  0x1E1C, /*U+1E1C*/ /**/
+  0x1E1C, /*U+1E1D*/ /*LATIN SMALL LETTER E WITH CEDILLA AND BREVE*/
+  0x1E1E, /*U+1E1E*/ /**/
+  0x1E1E, /*U+1E1F*/ /*LATIN SMALL LETTER F WITH DOT ABOVE*/
+  0x1E20, /*U+1E20*/ /**/
+  0x1E20, /*U+1E21*/ /*LATIN SMALL LETTER G WITH MACRON*/
+  0x1E22, /*U+1E22*/ /**/
+  0x1E22, /*U+1E23*/ /*LATIN SMALL LETTER H WITH DOT ABOVE*/
+  0x1E24, /*U+1E24*/ /**/
+  0x1E24, /*U+1E25*/ /*LATIN SMALL LETTER H WITH DOT BELOW*/
+  0x1E26, /*U+1E26*/ /**/
+  0x1E26, /*U+1E27*/ /*LATIN SMALL LETTER H WITH DIAERESIS*/
+  0x1E28, /*U+1E28*/ /**/
+  0x1E28, /*U+1E29*/ /*LATIN SMALL LETTER H WITH CEDILLA*/
+  0x1E2A, /*U+1E2A*/ /**/
+  0x1E2A, /*U+1E2B*/ /*LATIN SMALL LETTER H WITH BREVE BELOW*/
+  0x1E2C, /*U+1E2C*/ /**/
+  0x1E2C, /*U+1E2D*/ /*LATIN SMALL LETTER I WITH TILDE BELOW*/
+  0x1E2E, /*U+1E2E*/ /**/
+  0x1E2E, /*U+1E2F*/ /*LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE*/
+  0x1E30, /*U+1E30*/ /**/
+  0x1E30, /*U+1E31*/ /*LATIN SMALL LETTER K WITH ACUTE*/
+  0x1E32, /*U+1E32*/ /**/
+  0x1E32, /*U+1E33*/ /*LATIN SMALL LETTER K WITH DOT BELOW*/
+  0x1E34, /*U+1E34*/ /**/
+  0x1E34, /*U+1E35*/ /*LATIN SMALL LETTER K WITH LINE BELOW*/
+  0x1E36, /*U+1E36*/ /**/
+  0x1E36, /*U+1E37*/ /*LATIN SMALL LETTER L WITH DOT BELOW*/
+  0x1E38, /*U+1E38*/ /**/
+  0x1E38, /*U+1E39*/ /*LATIN SMALL LETTER L WITH DOT BELOW AND MACRON*/
+  0x1E3A, /*U+1E3A*/ /**/
+  0x1E3A, /*U+1E3B*/ /*LATIN SMALL LETTER L WITH LINE BELOW*/
+  0x1E3C, /*U+1E3C*/ /**/
+  0x1E3C, /*U+1E3D*/ /*LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW*/
+  0x1E3E, /*U+1E3E*/ /**/
+  0x1E3E, /*U+1E3F*/ /*LATIN SMALL LETTER M WITH ACUTE*/
+  0x1E40, /*U+1E40*/ /**/
+  0x1E40, /*U+1E41*/ /*LATIN SMALL LETTER M WITH DOT ABOVE*/
+  0x1E42, /*U+1E42*/ /**/
+  0x1E42, /*U+1E43*/ /*LATIN SMALL LETTER M WITH DOT BELOW*/
+  0x1E44, /*U+1E44*/ /**/
+  0x1E44, /*U+1E45*/ /*LATIN SMALL LETTER N WITH DOT ABOVE*/
+  0x1E46, /*U+1E46*/ /**/
+  0x1E46, /*U+1E47*/ /*LATIN SMALL LETTER N WITH DOT BELOW*/
+  0x1E48, /*U+1E48*/ /**/
+  0x1E48, /*U+1E49*/ /*LATIN SMALL LETTER N WITH LINE BELOW*/
+  0x1E4A, /*U+1E4A*/ /**/
+  0x1E4A, /*U+1E4B*/ /*LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW*/
+  0x1E4C, /*U+1E4C*/ /**/
+  0x1E4C, /*U+1E4D*/ /*LATIN SMALL LETTER O WITH TILDE AND ACUTE*/
+  0x1E4E, /*U+1E4E*/ /**/
+  0x1E4E, /*U+1E4F*/ /*LATIN SMALL LETTER O WITH TILDE AND DIAERESIS*/
+  0x1E50, /*U+1E50*/ /**/
+  0x1E50, /*U+1E51*/ /*LATIN SMALL LETTER O WITH MACRON AND GRAVE*/
+  0x1E52, /*U+1E52*/ /**/
+  0x1E52, /*U+1E53*/ /*LATIN SMALL LETTER O WITH MACRON AND ACUTE*/
+  0x1E54, /*U+1E54*/ /**/
+  0x1E54, /*U+1E55*/ /*LATIN SMALL LETTER P WITH ACUTE*/
+  0x1E56, /*U+1E56*/ /**/
+  0x1E56, /*U+1E57*/ /*LATIN SMALL LETTER P WITH DOT ABOVE*/
+  0x1E58, /*U+1E58*/ /**/
+  0x1E58, /*U+1E59*/ /*LATIN SMALL LETTER R WITH DOT ABOVE*/
+  0x1E5A, /*U+1E5A*/ /**/
+  0x1E5A, /*U+1E5B*/ /*LATIN SMALL LETTER R WITH DOT BELOW*/
+  0x1E5C, /*U+1E5C*/ /**/
+  0x1E5C, /*U+1E5D*/ /*LATIN SMALL LETTER R WITH DOT BELOW AND MACRON*/
+  0x1E5E, /*U+1E5E*/ /**/
+  0x1E5E, /*U+1E5F*/ /*LATIN SMALL LETTER R WITH LINE BELOW*/
+  0x1E60, /*U+1E60*/ /**/
+  0x1E60, /*U+1E61*/ /*LATIN SMALL LETTER S WITH DOT ABOVE*/
+  0x1E62, /*U+1E62*/ /**/
+  0x1E62, /*U+1E63*/ /*LATIN SMALL LETTER S WITH DOT BELOW*/
+  0x1E64, /*U+1E64*/ /**/
+  0x1E64, /*U+1E65*/ /*LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE*/
+  0x1E66, /*U+1E66*/ /**/
+  0x1E66, /*U+1E67*/ /*LATIN SMALL LETTER S WITH CARON AND DOT ABOVE*/
+  0x1E68, /*U+1E68*/ /**/
+  0x1E68, /*U+1E69*/ /*LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE*/
+  0x1E6A, /*U+1E6A*/ /**/
+  0x1E6A, /*U+1E6B*/ /*LATIN SMALL LETTER T WITH DOT ABOVE*/
+  0x1E6C, /*U+1E6C*/ /**/
+  0x1E6C, /*U+1E6D*/ /*LATIN SMALL LETTER T WITH DOT BELOW*/
+  0x1E6E, /*U+1E6E*/ /**/
+  0x1E6E, /*U+1E6F*/ /*LATIN SMALL LETTER T WITH LINE BELOW*/
+  0x1E70, /*U+1E70*/ /**/
+  0x1E70, /*U+1E71*/ /*LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW*/
+  0x1E72, /*U+1E72*/ /**/
+  0x1E72, /*U+1E73*/ /*LATIN SMALL LETTER U WITH DIAERESIS BELOW*/
+  0x1E74, /*U+1E74*/ /**/
+  0x1E74, /*U+1E75*/ /*LATIN SMALL LETTER U WITH TILDE BELOW*/
+  0x1E76, /*U+1E76*/ /**/
+  0x1E76, /*U+1E77*/ /*LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW*/
+  0x1E78, /*U+1E78*/ /**/
+  0x1E78, /*U+1E79*/ /*LATIN SMALL LETTER U WITH TILDE AND ACUTE*/
+  0x1E7A, /*U+1E7A*/ /**/
+  0x1E7A, /*U+1E7B*/ /*LATIN SMALL LETTER U WITH MACRON AND DIAERESIS*/
+  0x1E7C, /*U+1E7C*/ /**/
+  0x1E7C, /*U+1E7D*/ /*LATIN SMALL LETTER V WITH TILDE*/
+  0x1E7E, /*U+1E7E*/ /**/
+  0x1E7E, /*U+1E7F*/ /*LATIN SMALL LETTER V WITH DOT BELOW*/
+  0x1E80, /*U+1E80*/ /**/
+  0x1E80, /*U+1E81*/ /*LATIN SMALL LETTER W WITH GRAVE*/
+  0x1E82, /*U+1E82*/ /**/
+  0x1E82, /*U+1E83*/ /*LATIN SMALL LETTER W WITH ACUTE*/
+  0x1E84, /*U+1E84*/ /**/
+  0x1E84, /*U+1E85*/ /*LATIN SMALL LETTER W WITH DIAERESIS*/
+  0x1E86, /*U+1E86*/ /**/
+  0x1E86, /*U+1E87*/ /*LATIN SMALL LETTER W WITH DOT ABOVE*/
+  0x1E88, /*U+1E88*/ /**/
+  0x1E88, /*U+1E89*/ /*LATIN SMALL LETTER W WITH DOT BELOW*/
+  0x1E8A, /*U+1E8A*/ /**/
+  0x1E8A, /*U+1E8B*/ /*LATIN SMALL LETTER X WITH DOT ABOVE*/
+  0x1E8C, /*U+1E8C*/ /**/
+  0x1E8C, /*U+1E8D*/ /*LATIN SMALL LETTER X WITH DIAERESIS*/
+  0x1E8E, /*U+1E8E*/ /**/
+  0x1E8E, /*U+1E8F*/ /*LATIN SMALL LETTER Y WITH DOT ABOVE*/
+  0x1E90, /*U+1E90*/ /**/
+  0x1E90, /*U+1E91*/ /*LATIN SMALL LETTER Z WITH CIRCUMFLEX*/
+  0x1E92, /*U+1E92*/ /**/
+  0x1E92, /*U+1E93*/ /*LATIN SMALL LETTER Z WITH DOT BELOW*/
+  0x1E94, /*U+1E94*/ /**/
+  0x1E94, /*U+1E95*/ /*LATIN SMALL LETTER Z WITH LINE BELOW*/
+  0x1E96, /*U+1E96*/ /**/
+  0x1E97, /*U+1E97*/ /**/
+  0x1E98, /*U+1E98*/ /**/
+  0x1E99, /*U+1E99*/ /**/
+  0x1E9A, /*U+1E9A*/ /**/
+  0x1E60, /*U+1E9B*/ /*LATIN SMALL LETTER LONG S WITH DOT ABOVE*/
+  0x1E9C, /*U+1E9C*/ /**/
+  0x1E9D, /*U+1E9D*/ /**/
+  0x1E9E, /*U+1E9E*/ /**/
+  0x1E9F, /*U+1E9F*/ /**/
+  0x1EA0, /*U+1EA0*/ /**/
+  0x1EA0, /*U+1EA1*/ /*LATIN SMALL LETTER A WITH DOT BELOW*/
+  0x1EA2, /*U+1EA2*/ /**/
+  0x1EA2, /*U+1EA3*/ /*LATIN SMALL LETTER A WITH HOOK ABOVE*/
+  0x1EA4, /*U+1EA4*/ /**/
+  0x1EA4, /*U+1EA5*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE*/
+  0x1EA6, /*U+1EA6*/ /**/
+  0x1EA6, /*U+1EA7*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE*/
+  0x1EA8, /*U+1EA8*/ /**/
+  0x1EA8, /*U+1EA9*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1EAA, /*U+1EAA*/ /**/
+  0x1EAA, /*U+1EAB*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE*/
+  0x1EAC, /*U+1EAC*/ /**/
+  0x1EAC, /*U+1EAD*/ /*LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1EAE, /*U+1EAE*/ /**/
+  0x1EAE, /*U+1EAF*/ /*LATIN SMALL LETTER A WITH BREVE AND ACUTE*/
+  0x1EB0, /*U+1EB0*/ /**/
+  0x1EB0, /*U+1EB1*/ /*LATIN SMALL LETTER A WITH BREVE AND GRAVE*/
+  0x1EB2, /*U+1EB2*/ /**/
+  0x1EB2, /*U+1EB3*/ /*LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE*/
+  0x1EB4, /*U+1EB4*/ /**/
+  0x1EB4, /*U+1EB5*/ /*LATIN SMALL LETTER A WITH BREVE AND TILDE*/
+  0x1EB6, /*U+1EB6*/ /**/
+  0x1EB6, /*U+1EB7*/ /*LATIN SMALL LETTER A WITH BREVE AND DOT BELOW*/
+  0x1EB8, /*U+1EB8*/ /**/
+  0x1EB8, /*U+1EB9*/ /*LATIN SMALL LETTER E WITH DOT BELOW*/
+  0x1EBA, /*U+1EBA*/ /**/
+  0x1EBA, /*U+1EBB*/ /*LATIN SMALL LETTER E WITH HOOK ABOVE*/
+  0x1EBC, /*U+1EBC*/ /**/
+  0x1EBC, /*U+1EBD*/ /*LATIN SMALL LETTER E WITH TILDE*/
+  0x1EBE, /*U+1EBE*/ /**/
+  0x1EBE, /*U+1EBF*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE*/
+  0x1EC0, /*U+1EC0*/ /**/
+  0x1EC0, /*U+1EC1*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE*/
+  0x1EC2, /*U+1EC2*/ /**/
+  0x1EC2, /*U+1EC3*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1EC4, /*U+1EC4*/ /**/
+  0x1EC4, /*U+1EC5*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE*/
+  0x1EC6, /*U+1EC6*/ /**/
+  0x1EC6, /*U+1EC7*/ /*LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1EC8, /*U+1EC8*/ /**/
+  0x1EC8, /*U+1EC9*/ /*LATIN SMALL LETTER I WITH HOOK ABOVE*/
+  0x1ECA, /*U+1ECA*/ /**/
+  0x1ECA, /*U+1ECB*/ /*LATIN SMALL LETTER I WITH DOT BELOW*/
+  0x1ECC, /*U+1ECC*/ /**/
+  0x1ECC, /*U+1ECD*/ /*LATIN SMALL LETTER O WITH DOT BELOW*/
+  0x1ECE, /*U+1ECE*/ /**/
+  0x1ECE, /*U+1ECF*/ /*LATIN SMALL LETTER O WITH HOOK ABOVE*/
+  0x1ED0, /*U+1ED0*/ /**/
+  0x1ED0, /*U+1ED1*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE*/
+  0x1ED2, /*U+1ED2*/ /**/
+  0x1ED2, /*U+1ED3*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE*/
+  0x1ED4, /*U+1ED4*/ /**/
+  0x1ED4, /*U+1ED5*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1ED6, /*U+1ED6*/ /**/
+  0x1ED6, /*U+1ED7*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE*/
+  0x1ED8, /*U+1ED8*/ /**/
+  0x1ED8, /*U+1ED9*/ /*LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1EDA, /*U+1EDA*/ /**/
+  0x1EDA, /*U+1EDB*/ /*LATIN SMALL LETTER O WITH HORN AND ACUTE*/
+  0x1EDC, /*U+1EDC*/ /**/
+  0x1EDC, /*U+1EDD*/ /*LATIN SMALL LETTER O WITH HORN AND GRAVE*/
+  0x1EDE, /*U+1EDE*/ /**/
+  0x1EDE, /*U+1EDF*/ /*LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE*/
+  0x1EE0, /*U+1EE0*/ /**/
+  0x1EE0, /*U+1EE1*/ /*LATIN SMALL LETTER O WITH HORN AND TILDE*/
+  0x1EE2, /*U+1EE2*/ /**/
+  0x1EE2, /*U+1EE3*/ /*LATIN SMALL LETTER O WITH HORN AND DOT BELOW*/
+  0x1EE4, /*U+1EE4*/ /**/
+  0x1EE4, /*U+1EE5*/ /*LATIN SMALL LETTER U WITH DOT BELOW*/
+  0x1EE6, /*U+1EE6*/ /**/
+  0x1EE6, /*U+1EE7*/ /*LATIN SMALL LETTER U WITH HOOK ABOVE*/
+  0x1EE8, /*U+1EE8*/ /**/
+  0x1EE8, /*U+1EE9*/ /*LATIN SMALL LETTER U WITH HORN AND ACUTE*/
+  0x1EEA, /*U+1EEA*/ /**/
+  0x1EEA, /*U+1EEB*/ /*LATIN SMALL LETTER U WITH HORN AND GRAVE*/
+  0x1EEC, /*U+1EEC*/ /**/
+  0x1EEC, /*U+1EED*/ /*LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE*/
+  0x1EEE, /*U+1EEE*/ /**/
+  0x1EEE, /*U+1EEF*/ /*LATIN SMALL LETTER U WITH HORN AND TILDE*/
+  0x1EF0, /*U+1EF0*/ /**/
+  0x1EF0, /*U+1EF1*/ /*LATIN SMALL LETTER U WITH HORN AND DOT BELOW*/
+  0x1EF2, /*U+1EF2*/ /**/
+  0x1EF2, /*U+1EF3*/ /*LATIN SMALL LETTER Y WITH GRAVE*/
+  0x1EF4, /*U+1EF4*/ /**/
+  0x1EF4, /*U+1EF5*/ /*LATIN SMALL LETTER Y WITH DOT BELOW*/
+  0x1EF6, /*U+1EF6*/ /**/
+  0x1EF6, /*U+1EF7*/ /*LATIN SMALL LETTER Y WITH HOOK ABOVE*/
+  0x1EF8, /*U+1EF8*/ /**/
+  0x1EF8, /*U+1EF9*/ /*LATIN SMALL LETTER Y WITH TILDE*/
+  0x1EFA, /*U+1EFA*/ /**/
+  0x1EFA, /*U+1EFB*/ /*LATIN SMALL LETTER MIDDLE-WELSH LL*/
+  0x1EFC, /*U+1EFC*/ /**/
+  0x1EFC, /*U+1EFD*/ /*LATIN SMALL LETTER MIDDLE-WELSH V*/
+  0x1EFE, /*U+1EFE*/ /**/
+  0x1EFE, /*U+1EFF*/ /*LATIN SMALL LETTER Y WITH LOOP*/
+  0x1F08, /*U+1F00*/ /*GREEK SMALL LETTER ALPHA WITH PSILI*/
+  0x1F09, /*U+1F01*/ /*GREEK SMALL LETTER ALPHA WITH DASIA*/
+  0x1F0A, /*U+1F02*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA*/
+  0x1F0B, /*U+1F03*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA*/
+  0x1F0C, /*U+1F04*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA*/
+  0x1F0D, /*U+1F05*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA*/
+  0x1F0E, /*U+1F06*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI*/
+  0x1F0F, /*U+1F07*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI*/
+  0x1F08, /*U+1F08*/ /**/
+  0x1F09, /*U+1F09*/ /**/
+  0x1F0A, /*U+1F0A*/ /**/
+  0x1F0B, /*U+1F0B*/ /**/
+  0x1F0C, /*U+1F0C*/ /**/
+  0x1F0D, /*U+1F0D*/ /**/
+  0x1F0E, /*U+1F0E*/ /**/
+  0x1F0F, /*U+1F0F*/ /**/
+  0x1F18, /*U+1F10*/ /*GREEK SMALL LETTER EPSILON WITH PSILI*/
+  0x1F19, /*U+1F11*/ /*GREEK SMALL LETTER EPSILON WITH DASIA*/
+  0x1F1A, /*U+1F12*/ /*GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA*/
+  0x1F1B, /*U+1F13*/ /*GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA*/
+  0x1F1C, /*U+1F14*/ /*GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA*/
+  0x1F1D, /*U+1F15*/ /*GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA*/
+  0x1F16, /*U+1F16*/ /**/
+  0x1F17, /*U+1F17*/ /**/
+  0x1F18, /*U+1F18*/ /**/
+  0x1F19, /*U+1F19*/ /**/
+  0x1F1A, /*U+1F1A*/ /**/
+  0x1F1B, /*U+1F1B*/ /**/
+  0x1F1C, /*U+1F1C*/ /**/
+  0x1F1D, /*U+1F1D*/ /**/
+  0x1F1E, /*U+1F1E*/ /**/
+  0x1F1F, /*U+1F1F*/ /**/
+  0x1F28, /*U+1F20*/ /*GREEK SMALL LETTER ETA WITH PSILI*/
+  0x1F29, /*U+1F21*/ /*GREEK SMALL LETTER ETA WITH DASIA*/
+  0x1F2A, /*U+1F22*/ /*GREEK SMALL LETTER ETA WITH PSILI AND VARIA*/
+  0x1F2B, /*U+1F23*/ /*GREEK SMALL LETTER ETA WITH DASIA AND VARIA*/
+  0x1F2C, /*U+1F24*/ /*GREEK SMALL LETTER ETA WITH PSILI AND OXIA*/
+  0x1F2D, /*U+1F25*/ /*GREEK SMALL LETTER ETA WITH DASIA AND OXIA*/
+  0x1F2E, /*U+1F26*/ /*GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI*/
+  0x1F2F, /*U+1F27*/ /*GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI*/
+  0x1F28, /*U+1F28*/ /**/
+  0x1F29, /*U+1F29*/ /**/
+  0x1F2A, /*U+1F2A*/ /**/
+  0x1F2B, /*U+1F2B*/ /**/
+  0x1F2C, /*U+1F2C*/ /**/
+  0x1F2D, /*U+1F2D*/ /**/
+  0x1F2E, /*U+1F2E*/ /**/
+  0x1F2F, /*U+1F2F*/ /**/
+  0x1F38, /*U+1F30*/ /*GREEK SMALL LETTER IOTA WITH PSILI*/
+  0x1F39, /*U+1F31*/ /*GREEK SMALL LETTER IOTA WITH DASIA*/
+  0x1F3A, /*U+1F32*/ /*GREEK SMALL LETTER IOTA WITH PSILI AND VARIA*/
+  0x1F3B, /*U+1F33*/ /*GREEK SMALL LETTER IOTA WITH DASIA AND VARIA*/
+  0x1F3C, /*U+1F34*/ /*GREEK SMALL LETTER IOTA WITH PSILI AND OXIA*/
+  0x1F3D, /*U+1F35*/ /*GREEK SMALL LETTER IOTA WITH DASIA AND OXIA*/
+  0x1F3E, /*U+1F36*/ /*GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI*/
+  0x1F3F, /*U+1F37*/ /*GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI*/
+  0x1F38, /*U+1F38*/ /**/
+  0x1F39, /*U+1F39*/ /**/
+  0x1F3A, /*U+1F3A*/ /**/
+  0x1F3B, /*U+1F3B*/ /**/
+  0x1F3C, /*U+1F3C*/ /**/
+  0x1F3D, /*U+1F3D*/ /**/
+  0x1F3E, /*U+1F3E*/ /**/
+  0x1F3F, /*U+1F3F*/ /**/
+  0x1F48, /*U+1F40*/ /*GREEK SMALL LETTER OMICRON WITH PSILI*/
+  0x1F49, /*U+1F41*/ /*GREEK SMALL LETTER OMICRON WITH DASIA*/
+  0x1F4A, /*U+1F42*/ /*GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA*/
+  0x1F4B, /*U+1F43*/ /*GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA*/
+  0x1F4C, /*U+1F44*/ /*GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA*/
+  0x1F4D, /*U+1F45*/ /*GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA*/
+  0x1F46, /*U+1F46*/ /**/
+  0x1F47, /*U+1F47*/ /**/
+  0x1F48, /*U+1F48*/ /**/
+  0x1F49, /*U+1F49*/ /**/
+  0x1F4A, /*U+1F4A*/ /**/
+  0x1F4B, /*U+1F4B*/ /**/
+  0x1F4C, /*U+1F4C*/ /**/
+  0x1F4D, /*U+1F4D*/ /**/
+  0x1F4E, /*U+1F4E*/ /**/
+  0x1F4F, /*U+1F4F*/ /**/
+  0x1F50, /*U+1F50*/ /**/
+  0x1F59, /*U+1F51*/ /*GREEK SMALL LETTER UPSILON WITH DASIA*/
+  0x1F52, /*U+1F52*/ /**/
+  0x1F5B, /*U+1F53*/ /*GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA*/
+  0x1F54, /*U+1F54*/ /**/
+  0x1F5D, /*U+1F55*/ /*GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA*/
+  0x1F56, /*U+1F56*/ /**/
+  0x1F5F, /*U+1F57*/ /*GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI*/
+  0x1F58, /*U+1F58*/ /**/
+  0x1F59, /*U+1F59*/ /**/
+  0x1F5A, /*U+1F5A*/ /**/
+  0x1F5B, /*U+1F5B*/ /**/
+  0x1F5C, /*U+1F5C*/ /**/
+  0x1F5D, /*U+1F5D*/ /**/
+  0x1F5E, /*U+1F5E*/ /**/
+  0x1F5F, /*U+1F5F*/ /**/
+  0x1F68, /*U+1F60*/ /*GREEK SMALL LETTER OMEGA WITH PSILI*/
+  0x1F69, /*U+1F61*/ /*GREEK SMALL LETTER OMEGA WITH DASIA*/
+  0x1F6A, /*U+1F62*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA*/
+  0x1F6B, /*U+1F63*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA*/
+  0x1F6C, /*U+1F64*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA*/
+  0x1F6D, /*U+1F65*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA*/
+  0x1F6E, /*U+1F66*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI*/
+  0x1F6F, /*U+1F67*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI*/
+  0x1F68, /*U+1F68*/ /**/
+  0x1F69, /*U+1F69*/ /**/
+  0x1F6A, /*U+1F6A*/ /**/
+  0x1F6B, /*U+1F6B*/ /**/
+  0x1F6C, /*U+1F6C*/ /**/
+  0x1F6D, /*U+1F6D*/ /**/
+  0x1F6E, /*U+1F6E*/ /**/
+  0x1F6F, /*U+1F6F*/ /**/
+  0x1FBA, /*U+1F70*/ /*GREEK SMALL LETTER ALPHA WITH VARIA*/
+  0x1FBB, /*U+1F71*/ /*GREEK SMALL LETTER ALPHA WITH OXIA*/
+  0x1FC8, /*U+1F72*/ /*GREEK SMALL LETTER EPSILON WITH VARIA*/
+  0x1FC9, /*U+1F73*/ /*GREEK SMALL LETTER EPSILON WITH OXIA*/
+  0x1FCA, /*U+1F74*/ /*GREEK SMALL LETTER ETA WITH VARIA*/
+  0x1FCB, /*U+1F75*/ /*GREEK SMALL LETTER ETA WITH OXIA*/
+  0x1FDA, /*U+1F76*/ /*GREEK SMALL LETTER IOTA WITH VARIA*/
+  0x1FDB, /*U+1F77*/ /*GREEK SMALL LETTER IOTA WITH OXIA*/
+  0x1FF8, /*U+1F78*/ /*GREEK SMALL LETTER OMICRON WITH VARIA*/
+  0x1FF9, /*U+1F79*/ /*GREEK SMALL LETTER OMICRON WITH OXIA*/
+  0x1FEA, /*U+1F7A*/ /*GREEK SMALL LETTER UPSILON WITH VARIA*/
+  0x1FEB, /*U+1F7B*/ /*GREEK SMALL LETTER UPSILON WITH OXIA*/
+  0x1FFA, /*U+1F7C*/ /*GREEK SMALL LETTER OMEGA WITH VARIA*/
+  0x1FFB, /*U+1F7D*/ /*GREEK SMALL LETTER OMEGA WITH OXIA*/
+  0x1F7E, /*U+1F7E*/ /**/
+  0x1F7F, /*U+1F7F*/ /**/
+  0x1F88, /*U+1F80*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI*/
+  0x1F89, /*U+1F81*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI*/
+  0x1F8A, /*U+1F82*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/
+  0x1F8B, /*U+1F83*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/
+  0x1F8C, /*U+1F84*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/
+  0x1F8D, /*U+1F85*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/
+  0x1F8E, /*U+1F86*/ /*GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1F8F, /*U+1F87*/ /*GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1F88, /*U+1F88*/ /**/
+  0x1F89, /*U+1F89*/ /**/
+  0x1F8A, /*U+1F8A*/ /**/
+  0x1F8B, /*U+1F8B*/ /**/
+  0x1F8C, /*U+1F8C*/ /**/
+  0x1F8D, /*U+1F8D*/ /**/
+  0x1F8E, /*U+1F8E*/ /**/
+  0x1F8F, /*U+1F8F*/ /**/
+  0x1F98, /*U+1F90*/ /*GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI*/
+  0x1F99, /*U+1F91*/ /*GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI*/
+  0x1F9A, /*U+1F92*/ /*GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/
+  0x1F9B, /*U+1F93*/ /*GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/
+  0x1F9C, /*U+1F94*/ /*GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/
+  0x1F9D, /*U+1F95*/ /*GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/
+  0x1F9E, /*U+1F96*/ /*GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1F9F, /*U+1F97*/ /*GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1F98, /*U+1F98*/ /**/
+  0x1F99, /*U+1F99*/ /**/
+  0x1F9A, /*U+1F9A*/ /**/
+  0x1F9B, /*U+1F9B*/ /**/
+  0x1F9C, /*U+1F9C*/ /**/
+  0x1F9D, /*U+1F9D*/ /**/
+  0x1F9E, /*U+1F9E*/ /**/
+  0x1F9F, /*U+1F9F*/ /**/
+  0x1FA8, /*U+1FA0*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI*/
+  0x1FA9, /*U+1FA1*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI*/
+  0x1FAA, /*U+1FA2*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI*/
+  0x1FAB, /*U+1FA3*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI*/
+  0x1FAC, /*U+1FA4*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI*/
+  0x1FAD, /*U+1FA5*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI*/
+  0x1FAE, /*U+1FA6*/ /*GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1FAF, /*U+1FA7*/ /*GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI*/
+  0x1FA8, /*U+1FA8*/ /**/
+  0x1FA9, /*U+1FA9*/ /**/
+  0x1FAA, /*U+1FAA*/ /**/
+  0x1FAB, /*U+1FAB*/ /**/
+  0x1FAC, /*U+1FAC*/ /**/
+  0x1FAD, /*U+1FAD*/ /**/
+  0x1FAE, /*U+1FAE*/ /**/
+  0x1FAF, /*U+1FAF*/ /**/
+  0x1FB8, /*U+1FB0*/ /*GREEK SMALL LETTER ALPHA WITH VRACHY*/
+  0x1FB9, /*U+1FB1*/ /*GREEK SMALL LETTER ALPHA WITH MACRON*/
+  0x1FB2, /*U+1FB2*/ /**/
+  0x1FBC, /*U+1FB3*/ /*GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI*/
+  0x1FB4, /*U+1FB4*/ /**/
+  0x1FB5, /*U+1FB5*/ /**/
+  0x1FB6, /*U+1FB6*/ /**/
+  0x1FB7, /*U+1FB7*/ /**/
+  0x1FB8, /*U+1FB8*/ /**/
+  0x1FB9, /*U+1FB9*/ /**/
+  0x1FBA, /*U+1FBA*/ /**/
+  0x1FBB, /*U+1FBB*/ /**/
+  0x1FBC, /*U+1FBC*/ /**/
+  0x1FBD, /*U+1FBD*/ /**/
+  0x0399, /*U+1FBE*/ /*GREEK PROSGEGRAMMENI*/
+  0x1FBF, /*U+1FBF*/ /**/
+  0x1FC0, /*U+1FC0*/ /**/
+  0x1FC1, /*U+1FC1*/ /**/
+  0x1FC2, /*U+1FC2*/ /**/
+  0x1FCC, /*U+1FC3*/ /*GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI*/
+  0x1FC4, /*U+1FC4*/ /**/
+  0x1FC5, /*U+1FC5*/ /**/
+  0x1FC6, /*U+1FC6*/ /**/
+  0x1FC7, /*U+1FC7*/ /**/
+  0x1FC8, /*U+1FC8*/ /**/
+  0x1FC9, /*U+1FC9*/ /**/
+  0x1FCA, /*U+1FCA*/ /**/
+  0x1FCB, /*U+1FCB*/ /**/
+  0x1FCC, /*U+1FCC*/ /**/
+  0x1FCD, /*U+1FCD*/ /**/
+  0x1FCE, /*U+1FCE*/ /**/
+  0x1FCF, /*U+1FCF*/ /**/
+  0x1FD8, /*U+1FD0*/ /*GREEK SMALL LETTER IOTA WITH VRACHY*/
+  0x1FD9, /*U+1FD1*/ /*GREEK SMALL LETTER IOTA WITH MACRON*/
+  0x1FD2, /*U+1FD2*/ /**/
+  0x1FD3, /*U+1FD3*/ /**/
+  0x1FD4, /*U+1FD4*/ /**/
+  0x1FD5, /*U+1FD5*/ /**/
+  0x1FD6, /*U+1FD6*/ /**/
+  0x1FD7, /*U+1FD7*/ /**/
+  0x1FD8, /*U+1FD8*/ /**/
+  0x1FD9, /*U+1FD9*/ /**/
+  0x1FDA, /*U+1FDA*/ /**/
+  0x1FDB, /*U+1FDB*/ /**/
+  0x1FDC, /*U+1FDC*/ /**/
+  0x1FDD, /*U+1FDD*/ /**/
+  0x1FDE, /*U+1FDE*/ /**/
+  0x1FDF, /*U+1FDF*/ /**/
+  0x1FE8, /*U+1FE0*/ /*GREEK SMALL LETTER UPSILON WITH VRACHY*/
+  0x1FE9, /*U+1FE1*/ /*GREEK SMALL LETTER UPSILON WITH MACRON*/
+  0x1FE2, /*U+1FE2*/ /**/
+  0x1FE3, /*U+1FE3*/ /**/
+  0x1FE4, /*U+1FE4*/ /**/
+  0x1FEC, /*U+1FE5*/ /*GREEK SMALL LETTER RHO WITH DASIA*/
+  0x1FE6, /*U+1FE6*/ /**/
+  0x1FE7, /*U+1FE7*/ /**/
+  0x1FE8, /*U+1FE8*/ /**/
+  0x1FE9, /*U+1FE9*/ /**/
+  0x1FEA, /*U+1FEA*/ /**/
+  0x1FEB, /*U+1FEB*/ /**/
+  0x1FEC, /*U+1FEC*/ /**/
+  0x1FED, /*U+1FED*/ /**/
+  0x1FEE, /*U+1FEE*/ /**/
+  0x1FEF, /*U+1FEF*/ /**/
+  0x1FF0, /*U+1FF0*/ /**/
+  0x1FF1, /*U+1FF1*/ /**/
+  0x1FF2, /*U+1FF2*/ /**/
+  0x1FFC, /*U+1FF3*/ /*GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI*/
+  0x1FF4, /*U+1FF4*/ /**/
+  0x1FF5, /*U+1FF5*/ /**/
+  0x1FF6, /*U+1FF6*/ /**/
+  0x1FF7, /*U+1FF7*/ /**/
+  0x1FF8, /*U+1FF8*/ /**/
+  0x1FF9, /*U+1FF9*/ /**/
+  0x1FFA, /*U+1FFA*/ /**/
+  0x1FFB, /*U+1FFB*/ /**/
+  0x1FFC, /*U+1FFC*/ /**/
+  0x1FFD, /*U+1FFD*/ /**/
+  0x1FFE, /*U+1FFE*/ /**/
+  0x1FFF, /*U+1FFF*/ /**/
+};
+
+static const u_int16_t upper_table_5[128] = {
+  0x2140, /*U+2140*/ /**/
+  0x2141, /*U+2141*/ /**/
+  0x2142, /*U+2142*/ /**/
+  0x2143, /*U+2143*/ /**/
+  0x2144, /*U+2144*/ /**/
+  0x2145, /*U+2145*/ /**/
+  0x2146, /*U+2146*/ /**/
+  0x2147, /*U+2147*/ /**/
+  0x2148, /*U+2148*/ /**/
+  0x2149, /*U+2149*/ /**/
+  0x214A, /*U+214A*/ /**/
+  0x214B, /*U+214B*/ /**/
+  0x214C, /*U+214C*/ /**/
+  0x214D, /*U+214D*/ /**/
+  0x2132, /*U+214E*/ /*TURNED SMALL F*/
+  0x214F, /*U+214F*/ /**/
+  0x2150, /*U+2150*/ /**/
+  0x2151, /*U+2151*/ /**/
+  0x2152, /*U+2152*/ /**/
+  0x2153, /*U+2153*/ /**/
+  0x2154, /*U+2154*/ /**/
+  0x2155, /*U+2155*/ /**/
+  0x2156, /*U+2156*/ /**/
+  0x2157, /*U+2157*/ /**/
+  0x2158, /*U+2158*/ /**/
+  0x2159, /*U+2159*/ /**/
+  0x215A, /*U+215A*/ /**/
+  0x215B, /*U+215B*/ /**/
+  0x215C, /*U+215C*/ /**/
+  0x215D, /*U+215D*/ /**/
+  0x215E, /*U+215E*/ /**/
+  0x215F, /*U+215F*/ /**/
+  0x2160, /*U+2160*/ /**/
+  0x2161, /*U+2161*/ /**/
+  0x2162, /*U+2162*/ /**/
+  0x2163, /*U+2163*/ /**/
+  0x2164, /*U+2164*/ /**/
+  0x2165, /*U+2165*/ /**/
+  0x2166, /*U+2166*/ /**/
+  0x2167, /*U+2167*/ /**/
+  0x2168, /*U+2168*/ /**/
+  0x2169, /*U+2169*/ /**/
+  0x216A, /*U+216A*/ /**/
+  0x216B, /*U+216B*/ /**/
+  0x216C, /*U+216C*/ /**/
+  0x216D, /*U+216D*/ /**/
+  0x216E, /*U+216E*/ /**/
+  0x216F, /*U+216F*/ /**/
+  0x2160, /*U+2170*/ /*SMALL ROMAN NUMERAL ONE*/
+  0x2161, /*U+2171*/ /*SMALL ROMAN NUMERAL TWO*/
+  0x2162, /*U+2172*/ /*SMALL ROMAN NUMERAL THREE*/
+  0x2163, /*U+2173*/ /*SMALL ROMAN NUMERAL FOUR*/
+  0x2164, /*U+2174*/ /*SMALL ROMAN NUMERAL FIVE*/
+  0x2165, /*U+2175*/ /*SMALL ROMAN NUMERAL SIX*/
+  0x2166, /*U+2176*/ /*SMALL ROMAN NUMERAL SEVEN*/
+  0x2167, /*U+2177*/ /*SMALL ROMAN NUMERAL EIGHT*/
+  0x2168, /*U+2178*/ /*SMALL ROMAN NUMERAL NINE*/
+  0x2169, /*U+2179*/ /*SMALL ROMAN NUMERAL TEN*/
+  0x216A, /*U+217A*/ /*SMALL ROMAN NUMERAL ELEVEN*/
+  0x216B, /*U+217B*/ /*SMALL ROMAN NUMERAL TWELVE*/
+  0x216C, /*U+217C*/ /*SMALL ROMAN NUMERAL FIFTY*/
+  0x216D, /*U+217D*/ /*SMALL ROMAN NUMERAL ONE HUNDRED*/
+  0x216E, /*U+217E*/ /*SMALL ROMAN NUMERAL FIVE HUNDRED*/
+  0x216F, /*U+217F*/ /*SMALL ROMAN NUMERAL ONE THOUSAND*/
+  0x2180, /*U+2180*/ /**/
+  0x2181, /*U+2181*/ /**/
+  0x2182, /*U+2182*/ /**/
+  0x2183, /*U+2183*/ /**/
+  0x2183, /*U+2184*/ /*LATIN SMALL LETTER REVERSED C*/
+  0x2185, /*U+2185*/ /**/
+  0x2186, /*U+2186*/ /**/
+  0x2187, /*U+2187*/ /**/
+  0x2188, /*U+2188*/ /**/
+  0x2189, /*U+2189*/ /**/
+  0x218A, /*U+218A*/ /**/
+  0x218B, /*U+218B*/ /**/
+  0x218C, /*U+218C*/ /**/
+  0x218D, /*U+218D*/ /**/
+  0x218E, /*U+218E*/ /**/
+  0x218F, /*U+218F*/ /**/
+  0x2190, /*U+2190*/ /**/
+  0x2191, /*U+2191*/ /**/
+  0x2192, /*U+2192*/ /**/
+  0x2193, /*U+2193*/ /**/
+  0x2194, /*U+2194*/ /**/
+  0x2195, /*U+2195*/ /**/
+  0x2196, /*U+2196*/ /**/
+  0x2197, /*U+2197*/ /**/
+  0x2198, /*U+2198*/ /**/
+  0x2199, /*U+2199*/ /**/
+  0x219A, /*U+219A*/ /**/
+  0x219B, /*U+219B*/ /**/
+  0x219C, /*U+219C*/ /**/
+  0x219D, /*U+219D*/ /**/
+  0x219E, /*U+219E*/ /**/
+  0x219F, /*U+219F*/ /**/
+  0x21A0, /*U+21A0*/ /**/
+  0x21A1, /*U+21A1*/ /**/
+  0x21A2, /*U+21A2*/ /**/
+  0x21A3, /*U+21A3*/ /**/
+  0x21A4, /*U+21A4*/ /**/
+  0x21A5, /*U+21A5*/ /**/
+  0x21A6, /*U+21A6*/ /**/
+  0x21A7, /*U+21A7*/ /**/
+  0x21A8, /*U+21A8*/ /**/
+  0x21A9, /*U+21A9*/ /**/
+  0x21AA, /*U+21AA*/ /**/
+  0x21AB, /*U+21AB*/ /**/
+  0x21AC, /*U+21AC*/ /**/
+  0x21AD, /*U+21AD*/ /**/
+  0x21AE, /*U+21AE*/ /**/
+  0x21AF, /*U+21AF*/ /**/
+  0x21B0, /*U+21B0*/ /**/
+  0x21B1, /*U+21B1*/ /**/
+  0x21B2, /*U+21B2*/ /**/
+  0x21B3, /*U+21B3*/ /**/
+  0x21B4, /*U+21B4*/ /**/
+  0x21B5, /*U+21B5*/ /**/
+  0x21B6, /*U+21B6*/ /**/
+  0x21B7, /*U+21B7*/ /**/
+  0x21B8, /*U+21B8*/ /**/
+  0x21B9, /*U+21B9*/ /**/
+  0x21BA, /*U+21BA*/ /**/
+  0x21BB, /*U+21BB*/ /**/
+  0x21BC, /*U+21BC*/ /**/
+  0x21BD, /*U+21BD*/ /**/
+  0x21BE, /*U+21BE*/ /**/
+  0x21BF, /*U+21BF*/ /**/
+};
+
+static const u_int16_t upper_table_6[64] = {
+  0x24C0, /*U+24C0*/ /**/
+  0x24C1, /*U+24C1*/ /**/
+  0x24C2, /*U+24C2*/ /**/
+  0x24C3, /*U+24C3*/ /**/
+  0x24C4, /*U+24C4*/ /**/
+  0x24C5, /*U+24C5*/ /**/
+  0x24C6, /*U+24C6*/ /**/
+  0x24C7, /*U+24C7*/ /**/
+  0x24C8, /*U+24C8*/ /**/
+  0x24C9, /*U+24C9*/ /**/
+  0x24CA, /*U+24CA*/ /**/
+  0x24CB, /*U+24CB*/ /**/
+  0x24CC, /*U+24CC*/ /**/
+  0x24CD, /*U+24CD*/ /**/
+  0x24CE, /*U+24CE*/ /**/
+  0x24CF, /*U+24CF*/ /**/
+  0x24B6, /*U+24D0*/ /*CIRCLED LATIN SMALL LETTER A*/
+  0x24B7, /*U+24D1*/ /*CIRCLED LATIN SMALL LETTER B*/
+  0x24B8, /*U+24D2*/ /*CIRCLED LATIN SMALL LETTER C*/
+  0x24B9, /*U+24D3*/ /*CIRCLED LATIN SMALL LETTER D*/
+  0x24BA, /*U+24D4*/ /*CIRCLED LATIN SMALL LETTER E*/
+  0x24BB, /*U+24D5*/ /*CIRCLED LATIN SMALL LETTER F*/
+  0x24BC, /*U+24D6*/ /*CIRCLED LATIN SMALL LETTER G*/
+  0x24BD, /*U+24D7*/ /*CIRCLED LATIN SMALL LETTER H*/
+  0x24BE, /*U+24D8*/ /*CIRCLED LATIN SMALL LETTER I*/
+  0x24BF, /*U+24D9*/ /*CIRCLED LATIN SMALL LETTER J*/
+  0x24C0, /*U+24DA*/ /*CIRCLED LATIN SMALL LETTER K*/
+  0x24C1, /*U+24DB*/ /*CIRCLED LATIN SMALL LETTER L*/
+  0x24C2, /*U+24DC*/ /*CIRCLED LATIN SMALL LETTER M*/
+  0x24C3, /*U+24DD*/ /*CIRCLED LATIN SMALL LETTER N*/
+  0x24C4, /*U+24DE*/ /*CIRCLED LATIN SMALL LETTER O*/
+  0x24C5, /*U+24DF*/ /*CIRCLED LATIN SMALL LETTER P*/
+  0x24C6, /*U+24E0*/ /*CIRCLED LATIN SMALL LETTER Q*/
+  0x24C7, /*U+24E1*/ /*CIRCLED LATIN SMALL LETTER R*/
+  0x24C8, /*U+24E2*/ /*CIRCLED LATIN SMALL LETTER S*/
+  0x24C9, /*U+24E3*/ /*CIRCLED LATIN SMALL LETTER T*/
+  0x24CA, /*U+24E4*/ /*CIRCLED LATIN SMALL LETTER U*/
+  0x24CB, /*U+24E5*/ /*CIRCLED LATIN SMALL LETTER V*/
+  0x24CC, /*U+24E6*/ /*CIRCLED LATIN SMALL LETTER W*/
+  0x24CD, /*U+24E7*/ /*CIRCLED LATIN SMALL LETTER X*/
+  0x24CE, /*U+24E8*/ /*CIRCLED LATIN SMALL LETTER Y*/
+  0x24CF, /*U+24E9*/ /*CIRCLED LATIN SMALL LETTER Z*/
+  0x24EA, /*U+24EA*/ /**/
+  0x24EB, /*U+24EB*/ /**/
+  0x24EC, /*U+24EC*/ /**/
+  0x24ED, /*U+24ED*/ /**/
+  0x24EE, /*U+24EE*/ /**/
+  0x24EF, /*U+24EF*/ /**/
+  0x24F0, /*U+24F0*/ /**/
+  0x24F1, /*U+24F1*/ /**/
+  0x24F2, /*U+24F2*/ /**/
+  0x24F3, /*U+24F3*/ /**/
+  0x24F4, /*U+24F4*/ /**/
+  0x24F5, /*U+24F5*/ /**/
+  0x24F6, /*U+24F6*/ /**/
+  0x24F7, /*U+24F7*/ /**/
+  0x24F8, /*U+24F8*/ /**/
+  0x24F9, /*U+24F9*/ /**/
+  0x24FA, /*U+24FA*/ /**/
+  0x24FB, /*U+24FB*/ /**/
+  0x24FC, /*U+24FC*/ /**/
+  0x24FD, /*U+24FD*/ /**/
+  0x24FE, /*U+24FE*/ /**/
+  0x24FF, /*U+24FF*/ /**/
+};
+
+static const u_int16_t upper_table_7[320] = {
+  0x2C00, /*U+2C00*/ /**/
+  0x2C01, /*U+2C01*/ /**/
+  0x2C02, /*U+2C02*/ /**/
+  0x2C03, /*U+2C03*/ /**/
+  0x2C04, /*U+2C04*/ /**/
+  0x2C05, /*U+2C05*/ /**/
+  0x2C06, /*U+2C06*/ /**/
+  0x2C07, /*U+2C07*/ /**/
+  0x2C08, /*U+2C08*/ /**/
+  0x2C09, /*U+2C09*/ /**/
+  0x2C0A, /*U+2C0A*/ /**/
+  0x2C0B, /*U+2C0B*/ /**/
+  0x2C0C, /*U+2C0C*/ /**/
+  0x2C0D, /*U+2C0D*/ /**/
+  0x2C0E, /*U+2C0E*/ /**/
+  0x2C0F, /*U+2C0F*/ /**/
+  0x2C10, /*U+2C10*/ /**/
+  0x2C11, /*U+2C11*/ /**/
+  0x2C12, /*U+2C12*/ /**/
+  0x2C13, /*U+2C13*/ /**/
+  0x2C14, /*U+2C14*/ /**/
+  0x2C15, /*U+2C15*/ /**/
+  0x2C16, /*U+2C16*/ /**/
+  0x2C17, /*U+2C17*/ /**/
+  0x2C18, /*U+2C18*/ /**/
+  0x2C19, /*U+2C19*/ /**/
+  0x2C1A, /*U+2C1A*/ /**/
+  0x2C1B, /*U+2C1B*/ /**/
+  0x2C1C, /*U+2C1C*/ /**/
+  0x2C1D, /*U+2C1D*/ /**/
+  0x2C1E, /*U+2C1E*/ /**/
+  0x2C1F, /*U+2C1F*/ /**/
+  0x2C20, /*U+2C20*/ /**/
+  0x2C21, /*U+2C21*/ /**/
+  0x2C22, /*U+2C22*/ /**/
+  0x2C23, /*U+2C23*/ /**/
+  0x2C24, /*U+2C24*/ /**/
+  0x2C25, /*U+2C25*/ /**/
+  0x2C26, /*U+2C26*/ /**/
+  0x2C27, /*U+2C27*/ /**/
+  0x2C28, /*U+2C28*/ /**/
+  0x2C29, /*U+2C29*/ /**/
+  0x2C2A, /*U+2C2A*/ /**/
+  0x2C2B, /*U+2C2B*/ /**/
+  0x2C2C, /*U+2C2C*/ /**/
+  0x2C2D, /*U+2C2D*/ /**/
+  0x2C2E, /*U+2C2E*/ /**/
+  0x2C2F, /*U+2C2F*/ /**/
+  0x2C00, /*U+2C30*/ /*GLAGOLITIC SMALL LETTER AZU*/
+  0x2C01, /*U+2C31*/ /*GLAGOLITIC SMALL LETTER BUKY*/
+  0x2C02, /*U+2C32*/ /*GLAGOLITIC SMALL LETTER VEDE*/
+  0x2C03, /*U+2C33*/ /*GLAGOLITIC SMALL LETTER GLAGOLI*/
+  0x2C04, /*U+2C34*/ /*GLAGOLITIC SMALL LETTER DOBRO*/
+  0x2C05, /*U+2C35*/ /*GLAGOLITIC SMALL LETTER YESTU*/
+  0x2C06, /*U+2C36*/ /*GLAGOLITIC SMALL LETTER ZHIVETE*/
+  0x2C07, /*U+2C37*/ /*GLAGOLITIC SMALL LETTER DZELO*/
+  0x2C08, /*U+2C38*/ /*GLAGOLITIC SMALL LETTER ZEMLJA*/
+  0x2C09, /*U+2C39*/ /*GLAGOLITIC SMALL LETTER IZHE*/
+  0x2C0A, /*U+2C3A*/ /*GLAGOLITIC SMALL LETTER INITIAL IZHE*/
+  0x2C0B, /*U+2C3B*/ /*GLAGOLITIC SMALL LETTER I*/
+  0x2C0C, /*U+2C3C*/ /*GLAGOLITIC SMALL LETTER DJERVI*/
+  0x2C0D, /*U+2C3D*/ /*GLAGOLITIC SMALL LETTER KAKO*/
+  0x2C0E, /*U+2C3E*/ /*GLAGOLITIC SMALL LETTER LJUDIJE*/
+  0x2C0F, /*U+2C3F*/ /*GLAGOLITIC SMALL LETTER MYSLITE*/
+  0x2C10, /*U+2C40*/ /*GLAGOLITIC SMALL LETTER NASHI*/
+  0x2C11, /*U+2C41*/ /*GLAGOLITIC SMALL LETTER ONU*/
+  0x2C12, /*U+2C42*/ /*GLAGOLITIC SMALL LETTER POKOJI*/
+  0x2C13, /*U+2C43*/ /*GLAGOLITIC SMALL LETTER RITSI*/
+  0x2C14, /*U+2C44*/ /*GLAGOLITIC SMALL LETTER SLOVO*/
+  0x2C15, /*U+2C45*/ /*GLAGOLITIC SMALL LETTER TVRIDO*/
+  0x2C16, /*U+2C46*/ /*GLAGOLITIC SMALL LETTER UKU*/
+  0x2C17, /*U+2C47*/ /*GLAGOLITIC SMALL LETTER FRITU*/
+  0x2C18, /*U+2C48*/ /*GLAGOLITIC SMALL LETTER HERU*/
+  0x2C19, /*U+2C49*/ /*GLAGOLITIC SMALL LETTER OTU*/
+  0x2C1A, /*U+2C4A*/ /*GLAGOLITIC SMALL LETTER PE*/
+  0x2C1B, /*U+2C4B*/ /*GLAGOLITIC SMALL LETTER SHTA*/
+  0x2C1C, /*U+2C4C*/ /*GLAGOLITIC SMALL LETTER TSI*/
+  0x2C1D, /*U+2C4D*/ /*GLAGOLITIC SMALL LETTER CHRIVI*/
+  0x2C1E, /*U+2C4E*/ /*GLAGOLITIC SMALL LETTER SHA*/
+  0x2C1F, /*U+2C4F*/ /*GLAGOLITIC SMALL LETTER YERU*/
+  0x2C20, /*U+2C50*/ /*GLAGOLITIC SMALL LETTER YERI*/
+  0x2C21, /*U+2C51*/ /*GLAGOLITIC SMALL LETTER YATI*/
+  0x2C22, /*U+2C52*/ /*GLAGOLITIC SMALL LETTER SPIDERY HA*/
+  0x2C23, /*U+2C53*/ /*GLAGOLITIC SMALL LETTER YU*/
+  0x2C24, /*U+2C54*/ /*GLAGOLITIC SMALL LETTER SMALL YUS*/
+  0x2C25, /*U+2C55*/ /*GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL*/
+  0x2C26, /*U+2C56*/ /*GLAGOLITIC SMALL LETTER YO*/
+  0x2C27, /*U+2C57*/ /*GLAGOLITIC SMALL LETTER IOTATED SMALL YUS*/
+  0x2C28, /*U+2C58*/ /*GLAGOLITIC SMALL LETTER BIG YUS*/
+  0x2C29, /*U+2C59*/ /*GLAGOLITIC SMALL LETTER IOTATED BIG YUS*/
+  0x2C2A, /*U+2C5A*/ /*GLAGOLITIC SMALL LETTER FITA*/
+  0x2C2B, /*U+2C5B*/ /*GLAGOLITIC SMALL LETTER IZHITSA*/
+  0x2C2C, /*U+2C5C*/ /*GLAGOLITIC SMALL LETTER SHTAPIC*/
+  0x2C2D, /*U+2C5D*/ /*GLAGOLITIC SMALL LETTER TROKUTASTI A*/
+  0x2C2E, /*U+2C5E*/ /*GLAGOLITIC SMALL LETTER LATINATE MYSLITE*/
+  0x2C5F, /*U+2C5F*/ /**/
+  0x2C60, /*U+2C60*/ /**/
+  0x2C60, /*U+2C61*/ /*LATIN SMALL LETTER L WITH DOUBLE BAR*/
+  0x2C62, /*U+2C62*/ /**/
+  0x2C63, /*U+2C63*/ /**/
+  0x2C64, /*U+2C64*/ /**/
+  0x023A, /*U+2C65*/ /*LATIN SMALL LETTER A WITH STROKE*/
+  0x023E, /*U+2C66*/ /*LATIN SMALL LETTER T WITH DIAGONAL STROKE*/
+  0x2C67, /*U+2C67*/ /**/
+  0x2C67, /*U+2C68*/ /*LATIN SMALL LETTER H WITH DESCENDER*/
+  0x2C69, /*U+2C69*/ /**/
+  0x2C69, /*U+2C6A*/ /*LATIN SMALL LETTER K WITH DESCENDER*/
+  0x2C6B, /*U+2C6B*/ /**/
+  0x2C6B, /*U+2C6C*/ /*LATIN SMALL LETTER Z WITH DESCENDER*/
+  0x2C6D, /*U+2C6D*/ /**/
+  0x2C6E, /*U+2C6E*/ /**/
+  0x2C6F, /*U+2C6F*/ /**/
+  0x2C70, /*U+2C70*/ /**/
+  0x2C71, /*U+2C71*/ /**/
+  0x2C72, /*U+2C72*/ /**/
+  0x2C72, /*U+2C73*/ /*LATIN SMALL LETTER W WITH HOOK*/
+  0x2C74, /*U+2C74*/ /**/
+  0x2C75, /*U+2C75*/ /**/
+  0x2C75, /*U+2C76*/ /*LATIN SMALL LETTER HALF H*/
+  0x2C77, /*U+2C77*/ /**/
+  0x2C78, /*U+2C78*/ /**/
+  0x2C79, /*U+2C79*/ /**/
+  0x2C7A, /*U+2C7A*/ /**/
+  0x2C7B, /*U+2C7B*/ /**/
+  0x2C7C, /*U+2C7C*/ /**/
+  0x2C7D, /*U+2C7D*/ /**/
+  0x2C7E, /*U+2C7E*/ /**/
+  0x2C7F, /*U+2C7F*/ /**/
+  0x2C80, /*U+2C80*/ /**/
+  0x2C80, /*U+2C81*/ /*COPTIC SMALL LETTER ALFA*/
+  0x2C82, /*U+2C82*/ /**/
+  0x2C82, /*U+2C83*/ /*COPTIC SMALL LETTER VIDA*/
+  0x2C84, /*U+2C84*/ /**/
+  0x2C84, /*U+2C85*/ /*COPTIC SMALL LETTER GAMMA*/
+  0x2C86, /*U+2C86*/ /**/
+  0x2C86, /*U+2C87*/ /*COPTIC SMALL LETTER DALDA*/
+  0x2C88, /*U+2C88*/ /**/
+  0x2C88, /*U+2C89*/ /*COPTIC SMALL LETTER EIE*/
+  0x2C8A, /*U+2C8A*/ /**/
+  0x2C8A, /*U+2C8B*/ /*COPTIC SMALL LETTER SOU*/
+  0x2C8C, /*U+2C8C*/ /**/
+  0x2C8C, /*U+2C8D*/ /*COPTIC SMALL LETTER ZATA*/
+  0x2C8E, /*U+2C8E*/ /**/
+  0x2C8E, /*U+2C8F*/ /*COPTIC SMALL LETTER HATE*/
+  0x2C90, /*U+2C90*/ /**/
+  0x2C90, /*U+2C91*/ /*COPTIC SMALL LETTER THETHE*/
+  0x2C92, /*U+2C92*/ /**/
+  0x2C92, /*U+2C93*/ /*COPTIC SMALL LETTER IAUDA*/
+  0x2C94, /*U+2C94*/ /**/
+  0x2C94, /*U+2C95*/ /*COPTIC SMALL LETTER KAPA*/
+  0x2C96, /*U+2C96*/ /**/
+  0x2C96, /*U+2C97*/ /*COPTIC SMALL LETTER LAULA*/
+  0x2C98, /*U+2C98*/ /**/
+  0x2C98, /*U+2C99*/ /*COPTIC SMALL LETTER MI*/
+  0x2C9A, /*U+2C9A*/ /**/
+  0x2C9A, /*U+2C9B*/ /*COPTIC SMALL LETTER NI*/
+  0x2C9C, /*U+2C9C*/ /**/
+  0x2C9C, /*U+2C9D*/ /*COPTIC SMALL LETTER KSI*/
+  0x2C9E, /*U+2C9E*/ /**/
+  0x2C9E, /*U+2C9F*/ /*COPTIC SMALL LETTER O*/
+  0x2CA0, /*U+2CA0*/ /**/
+  0x2CA0, /*U+2CA1*/ /*COPTIC SMALL LETTER PI*/
+  0x2CA2, /*U+2CA2*/ /**/
+  0x2CA2, /*U+2CA3*/ /*COPTIC SMALL LETTER RO*/
+  0x2CA4, /*U+2CA4*/ /**/
+  0x2CA4, /*U+2CA5*/ /*COPTIC SMALL LETTER SIMA*/
+  0x2CA6, /*U+2CA6*/ /**/
+  0x2CA6, /*U+2CA7*/ /*COPTIC SMALL LETTER TAU*/
+  0x2CA8, /*U+2CA8*/ /**/
+  0x2CA8, /*U+2CA9*/ /*COPTIC SMALL LETTER UA*/
+  0x2CAA, /*U+2CAA*/ /**/
+  0x2CAA, /*U+2CAB*/ /*COPTIC SMALL LETTER FI*/
+  0x2CAC, /*U+2CAC*/ /**/
+  0x2CAC, /*U+2CAD*/ /*COPTIC SMALL LETTER KHI*/
+  0x2CAE, /*U+2CAE*/ /**/
+  0x2CAE, /*U+2CAF*/ /*COPTIC SMALL LETTER PSI*/
+  0x2CB0, /*U+2CB0*/ /**/
+  0x2CB0, /*U+2CB1*/ /*COPTIC SMALL LETTER OOU*/
+  0x2CB2, /*U+2CB2*/ /**/
+  0x2CB2, /*U+2CB3*/ /*COPTIC SMALL LETTER DIALECT-P ALEF*/
+  0x2CB4, /*U+2CB4*/ /**/
+  0x2CB4, /*U+2CB5*/ /*COPTIC SMALL LETTER OLD COPTIC AIN*/
+  0x2CB6, /*U+2CB6*/ /**/
+  0x2CB6, /*U+2CB7*/ /*COPTIC SMALL LETTER CRYPTOGRAMMIC EIE*/
+  0x2CB8, /*U+2CB8*/ /**/
+  0x2CB8, /*U+2CB9*/ /*COPTIC SMALL LETTER DIALECT-P KAPA*/
+  0x2CBA, /*U+2CBA*/ /**/
+  0x2CBA, /*U+2CBB*/ /*COPTIC SMALL LETTER DIALECT-P NI*/
+  0x2CBC, /*U+2CBC*/ /**/
+  0x2CBC, /*U+2CBD*/ /*COPTIC SMALL LETTER CRYPTOGRAMMIC NI*/
+  0x2CBE, /*U+2CBE*/ /**/
+  0x2CBE, /*U+2CBF*/ /*COPTIC SMALL LETTER OLD COPTIC OOU*/
+  0x2CC0, /*U+2CC0*/ /**/
+  0x2CC0, /*U+2CC1*/ /*COPTIC SMALL LETTER SAMPI*/
+  0x2CC2, /*U+2CC2*/ /**/
+  0x2CC2, /*U+2CC3*/ /*COPTIC SMALL LETTER CROSSED SHEI*/
+  0x2CC4, /*U+2CC4*/ /**/
+  0x2CC4, /*U+2CC5*/ /*COPTIC SMALL LETTER OLD COPTIC SHEI*/
+  0x2CC6, /*U+2CC6*/ /**/
+  0x2CC6, /*U+2CC7*/ /*COPTIC SMALL LETTER OLD COPTIC ESH*/
+  0x2CC8, /*U+2CC8*/ /**/
+  0x2CC8, /*U+2CC9*/ /*COPTIC SMALL LETTER AKHMIMIC KHEI*/
+  0x2CCA, /*U+2CCA*/ /**/
+  0x2CCA, /*U+2CCB*/ /*COPTIC SMALL LETTER DIALECT-P HORI*/
+  0x2CCC, /*U+2CCC*/ /**/
+  0x2CCC, /*U+2CCD*/ /*COPTIC SMALL LETTER OLD COPTIC HORI*/
+  0x2CCE, /*U+2CCE*/ /**/
+  0x2CCE, /*U+2CCF*/ /*COPTIC SMALL LETTER OLD COPTIC HA*/
+  0x2CD0, /*U+2CD0*/ /**/
+  0x2CD0, /*U+2CD1*/ /*COPTIC SMALL LETTER L-SHAPED HA*/
+  0x2CD2, /*U+2CD2*/ /**/
+  0x2CD2, /*U+2CD3*/ /*COPTIC SMALL LETTER OLD COPTIC HEI*/
+  0x2CD4, /*U+2CD4*/ /**/
+  0x2CD4, /*U+2CD5*/ /*COPTIC SMALL LETTER OLD COPTIC HAT*/
+  0x2CD6, /*U+2CD6*/ /**/
+  0x2CD6, /*U+2CD7*/ /*COPTIC SMALL LETTER OLD COPTIC GANGIA*/
+  0x2CD8, /*U+2CD8*/ /**/
+  0x2CD8, /*U+2CD9*/ /*COPTIC SMALL LETTER OLD COPTIC DJA*/
+  0x2CDA, /*U+2CDA*/ /**/
+  0x2CDA, /*U+2CDB*/ /*COPTIC SMALL LETTER OLD COPTIC SHIMA*/
+  0x2CDC, /*U+2CDC*/ /**/
+  0x2CDC, /*U+2CDD*/ /*COPTIC SMALL LETTER OLD NUBIAN SHIMA*/
+  0x2CDE, /*U+2CDE*/ /**/
+  0x2CDE, /*U+2CDF*/ /*COPTIC SMALL LETTER OLD NUBIAN NGI*/
+  0x2CE0, /*U+2CE0*/ /**/
+  0x2CE0, /*U+2CE1*/ /*COPTIC SMALL LETTER OLD NUBIAN NYI*/
+  0x2CE2, /*U+2CE2*/ /**/
+  0x2CE2, /*U+2CE3*/ /*COPTIC SMALL LETTER OLD NUBIAN WAU*/
+  0x2CE4, /*U+2CE4*/ /**/
+  0x2CE5, /*U+2CE5*/ /**/
+  0x2CE6, /*U+2CE6*/ /**/
+  0x2CE7, /*U+2CE7*/ /**/
+  0x2CE8, /*U+2CE8*/ /**/
+  0x2CE9, /*U+2CE9*/ /**/
+  0x2CEA, /*U+2CEA*/ /**/
+  0x2CEB, /*U+2CEB*/ /**/
+  0x2CEB, /*U+2CEC*/ /*COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI*/
+  0x2CED, /*U+2CED*/ /**/
+  0x2CED, /*U+2CEE*/ /*COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA*/
+  0x2CEF, /*U+2CEF*/ /**/
+  0x2CF0, /*U+2CF0*/ /**/
+  0x2CF1, /*U+2CF1*/ /**/
+  0x2CF2, /*U+2CF2*/ /**/
+  0x2CF3, /*U+2CF3*/ /**/
+  0x2CF4, /*U+2CF4*/ /**/
+  0x2CF5, /*U+2CF5*/ /**/
+  0x2CF6, /*U+2CF6*/ /**/
+  0x2CF7, /*U+2CF7*/ /**/
+  0x2CF8, /*U+2CF8*/ /**/
+  0x2CF9, /*U+2CF9*/ /**/
+  0x2CFA, /*U+2CFA*/ /**/
+  0x2CFB, /*U+2CFB*/ /**/
+  0x2CFC, /*U+2CFC*/ /**/
+  0x2CFD, /*U+2CFD*/ /**/
+  0x2CFE, /*U+2CFE*/ /**/
+  0x2CFF, /*U+2CFF*/ /**/
+  0x10A0, /*U+2D00*/ /*GEORGIAN SMALL LETTER AN*/
+  0x10A1, /*U+2D01*/ /*GEORGIAN SMALL LETTER BAN*/
+  0x10A2, /*U+2D02*/ /*GEORGIAN SMALL LETTER GAN*/
+  0x10A3, /*U+2D03*/ /*GEORGIAN SMALL LETTER DON*/
+  0x10A4, /*U+2D04*/ /*GEORGIAN SMALL LETTER EN*/
+  0x10A5, /*U+2D05*/ /*GEORGIAN SMALL LETTER VIN*/
+  0x10A6, /*U+2D06*/ /*GEORGIAN SMALL LETTER ZEN*/
+  0x10A7, /*U+2D07*/ /*GEORGIAN SMALL LETTER TAN*/
+  0x10A8, /*U+2D08*/ /*GEORGIAN SMALL LETTER IN*/
+  0x10A9, /*U+2D09*/ /*GEORGIAN SMALL LETTER KAN*/
+  0x10AA, /*U+2D0A*/ /*GEORGIAN SMALL LETTER LAS*/
+  0x10AB, /*U+2D0B*/ /*GEORGIAN SMALL LETTER MAN*/
+  0x10AC, /*U+2D0C*/ /*GEORGIAN SMALL LETTER NAR*/
+  0x10AD, /*U+2D0D*/ /*GEORGIAN SMALL LETTER ON*/
+  0x10AE, /*U+2D0E*/ /*GEORGIAN SMALL LETTER PAR*/
+  0x10AF, /*U+2D0F*/ /*GEORGIAN SMALL LETTER ZHAR*/
+  0x10B0, /*U+2D10*/ /*GEORGIAN SMALL LETTER RAE*/
+  0x10B1, /*U+2D11*/ /*GEORGIAN SMALL LETTER SAN*/
+  0x10B2, /*U+2D12*/ /*GEORGIAN SMALL LETTER TAR*/
+  0x10B3, /*U+2D13*/ /*GEORGIAN SMALL LETTER UN*/
+  0x10B4, /*U+2D14*/ /*GEORGIAN SMALL LETTER PHAR*/
+  0x10B5, /*U+2D15*/ /*GEORGIAN SMALL LETTER KHAR*/
+  0x10B6, /*U+2D16*/ /*GEORGIAN SMALL LETTER GHAN*/
+  0x10B7, /*U+2D17*/ /*GEORGIAN SMALL LETTER QAR*/
+  0x10B8, /*U+2D18*/ /*GEORGIAN SMALL LETTER SHIN*/
+  0x10B9, /*U+2D19*/ /*GEORGIAN SMALL LETTER CHIN*/
+  0x10BA, /*U+2D1A*/ /*GEORGIAN SMALL LETTER CAN*/
+  0x10BB, /*U+2D1B*/ /*GEORGIAN SMALL LETTER JIL*/
+  0x10BC, /*U+2D1C*/ /*GEORGIAN SMALL LETTER CIL*/
+  0x10BD, /*U+2D1D*/ /*GEORGIAN SMALL LETTER CHAR*/
+  0x10BE, /*U+2D1E*/ /*GEORGIAN SMALL LETTER XAN*/
+  0x10BF, /*U+2D1F*/ /*GEORGIAN SMALL LETTER JHAN*/
+  0x10C0, /*U+2D20*/ /*GEORGIAN SMALL LETTER HAE*/
+  0x10C1, /*U+2D21*/ /*GEORGIAN SMALL LETTER HE*/
+  0x10C2, /*U+2D22*/ /*GEORGIAN SMALL LETTER HIE*/
+  0x10C3, /*U+2D23*/ /*GEORGIAN SMALL LETTER WE*/
+  0x10C4, /*U+2D24*/ /*GEORGIAN SMALL LETTER HAR*/
+  0x10C5, /*U+2D25*/ /*GEORGIAN SMALL LETTER HOE*/
+  0x2D26, /*U+2D26*/ /**/
+  0x2D27, /*U+2D27*/ /**/
+  0x2D28, /*U+2D28*/ /**/
+  0x2D29, /*U+2D29*/ /**/
+  0x2D2A, /*U+2D2A*/ /**/
+  0x2D2B, /*U+2D2B*/ /**/
+  0x2D2C, /*U+2D2C*/ /**/
+  0x2D2D, /*U+2D2D*/ /**/
+  0x2D2E, /*U+2D2E*/ /**/
+  0x2D2F, /*U+2D2F*/ /**/
+  0x2D30, /*U+2D30*/ /**/
+  0x2D31, /*U+2D31*/ /**/
+  0x2D32, /*U+2D32*/ /**/
+  0x2D33, /*U+2D33*/ /**/
+  0x2D34, /*U+2D34*/ /**/
+  0x2D35, /*U+2D35*/ /**/
+  0x2D36, /*U+2D36*/ /**/
+  0x2D37, /*U+2D37*/ /**/
+  0x2D38, /*U+2D38*/ /**/
+  0x2D39, /*U+2D39*/ /**/
+  0x2D3A, /*U+2D3A*/ /**/
+  0x2D3B, /*U+2D3B*/ /**/
+  0x2D3C, /*U+2D3C*/ /**/
+  0x2D3D, /*U+2D3D*/ /**/
+  0x2D3E, /*U+2D3E*/ /**/
+  0x2D3F, /*U+2D3F*/ /**/
+};
+
+static const u_int16_t upper_table_8[128] = {
+  0xA640, /*U+A640*/ /**/
+  0xA640, /*U+A641*/ /*CYRILLIC SMALL LETTER ZEMLYA*/
+  0xA642, /*U+A642*/ /**/
+  0xA642, /*U+A643*/ /*CYRILLIC SMALL LETTER DZELO*/
+  0xA644, /*U+A644*/ /**/
+  0xA644, /*U+A645*/ /*CYRILLIC SMALL LETTER REVERSED DZE*/
+  0xA646, /*U+A646*/ /**/
+  0xA646, /*U+A647*/ /*CYRILLIC SMALL LETTER IOTA*/
+  0xA648, /*U+A648*/ /**/
+  0xA648, /*U+A649*/ /*CYRILLIC SMALL LETTER DJERV*/
+  0xA64A, /*U+A64A*/ /**/
+  0xA64A, /*U+A64B*/ /*CYRILLIC SMALL LETTER MONOGRAPH UK*/
+  0xA64C, /*U+A64C*/ /**/
+  0xA64C, /*U+A64D*/ /*CYRILLIC SMALL LETTER BROAD OMEGA*/
+  0xA64E, /*U+A64E*/ /**/
+  0xA64E, /*U+A64F*/ /*CYRILLIC SMALL LETTER NEUTRAL YER*/
+  0xA650, /*U+A650*/ /**/
+  0xA650, /*U+A651*/ /*CYRILLIC SMALL LETTER YERU WITH BACK YER*/
+  0xA652, /*U+A652*/ /**/
+  0xA652, /*U+A653*/ /*CYRILLIC SMALL LETTER IOTIFIED YAT*/
+  0xA654, /*U+A654*/ /**/
+  0xA654, /*U+A655*/ /*CYRILLIC SMALL LETTER REVERSED YU*/
+  0xA656, /*U+A656*/ /**/
+  0xA656, /*U+A657*/ /*CYRILLIC SMALL LETTER IOTIFIED A*/
+  0xA658, /*U+A658*/ /**/
+  0xA658, /*U+A659*/ /*CYRILLIC SMALL LETTER CLOSED LITTLE YUS*/
+  0xA65A, /*U+A65A*/ /**/
+  0xA65A, /*U+A65B*/ /*CYRILLIC SMALL LETTER BLENDED YUS*/
+  0xA65C, /*U+A65C*/ /**/
+  0xA65C, /*U+A65D*/ /*CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS*/
+  0xA65E, /*U+A65E*/ /**/
+  0xA65E, /*U+A65F*/ /*CYRILLIC SMALL LETTER YN*/
+  0xA660, /*U+A660*/ /**/
+  0xA660, /*U+A661*/ /*CYRILLIC SMALL LETTER REVERSED TSE*/
+  0xA662, /*U+A662*/ /**/
+  0xA662, /*U+A663*/ /*CYRILLIC SMALL LETTER SOFT DE*/
+  0xA664, /*U+A664*/ /**/
+  0xA664, /*U+A665*/ /*CYRILLIC SMALL LETTER SOFT EL*/
+  0xA666, /*U+A666*/ /**/
+  0xA666, /*U+A667*/ /*CYRILLIC SMALL LETTER SOFT EM*/
+  0xA668, /*U+A668*/ /**/
+  0xA668, /*U+A669*/ /*CYRILLIC SMALL LETTER MONOCULAR O*/
+  0xA66A, /*U+A66A*/ /**/
+  0xA66A, /*U+A66B*/ /*CYRILLIC SMALL LETTER BINOCULAR O*/
+  0xA66C, /*U+A66C*/ /**/
+  0xA66C, /*U+A66D*/ /*CYRILLIC SMALL LETTER DOUBLE MONOCULAR O*/
+  0xA66E, /*U+A66E*/ /**/
+  0xA66F, /*U+A66F*/ /**/
+  0xA670, /*U+A670*/ /**/
+  0xA671, /*U+A671*/ /**/
+  0xA672, /*U+A672*/ /**/
+  0xA673, /*U+A673*/ /**/
+  0xA674, /*U+A674*/ /**/
+  0xA675, /*U+A675*/ /**/
+  0xA676, /*U+A676*/ /**/
+  0xA677, /*U+A677*/ /**/
+  0xA678, /*U+A678*/ /**/
+  0xA679, /*U+A679*/ /**/
+  0xA67A, /*U+A67A*/ /**/
+  0xA67B, /*U+A67B*/ /**/
+  0xA67C, /*U+A67C*/ /**/
+  0xA67D, /*U+A67D*/ /**/
+  0xA67E, /*U+A67E*/ /**/
+  0xA67F, /*U+A67F*/ /**/
+  0xA680, /*U+A680*/ /**/
+  0xA680, /*U+A681*/ /*CYRILLIC SMALL LETTER DWE*/
+  0xA682, /*U+A682*/ /**/
+  0xA682, /*U+A683*/ /*CYRILLIC SMALL LETTER DZWE*/
+  0xA684, /*U+A684*/ /**/
+  0xA684, /*U+A685*/ /*CYRILLIC SMALL LETTER ZHWE*/
+  0xA686, /*U+A686*/ /**/
+  0xA686, /*U+A687*/ /*CYRILLIC SMALL LETTER CCHE*/
+  0xA688, /*U+A688*/ /**/
+  0xA688, /*U+A689*/ /*CYRILLIC SMALL LETTER DZZE*/
+  0xA68A, /*U+A68A*/ /**/
+  0xA68A, /*U+A68B*/ /*CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK*/
+  0xA68C, /*U+A68C*/ /**/
+  0xA68C, /*U+A68D*/ /*CYRILLIC SMALL LETTER TWE*/
+  0xA68E, /*U+A68E*/ /**/
+  0xA68E, /*U+A68F*/ /*CYRILLIC SMALL LETTER TSWE*/
+  0xA690, /*U+A690*/ /**/
+  0xA690, /*U+A691*/ /*CYRILLIC SMALL LETTER TSSE*/
+  0xA692, /*U+A692*/ /**/
+  0xA692, /*U+A693*/ /*CYRILLIC SMALL LETTER TCHE*/
+  0xA694, /*U+A694*/ /**/
+  0xA694, /*U+A695*/ /*CYRILLIC SMALL LETTER HWE*/
+  0xA696, /*U+A696*/ /**/
+  0xA696, /*U+A697*/ /*CYRILLIC SMALL LETTER SHWE*/
+  0xA698, /*U+A698*/ /**/
+  0xA699, /*U+A699*/ /**/
+  0xA69A, /*U+A69A*/ /**/
+  0xA69B, /*U+A69B*/ /**/
+  0xA69C, /*U+A69C*/ /**/
+  0xA69D, /*U+A69D*/ /**/
+  0xA69E, /*U+A69E*/ /**/
+  0xA69F, /*U+A69F*/ /**/
+  0xA6A0, /*U+A6A0*/ /**/
+  0xA6A1, /*U+A6A1*/ /**/
+  0xA6A2, /*U+A6A2*/ /**/
+  0xA6A3, /*U+A6A3*/ /**/
+  0xA6A4, /*U+A6A4*/ /**/
+  0xA6A5, /*U+A6A5*/ /**/
+  0xA6A6, /*U+A6A6*/ /**/
+  0xA6A7, /*U+A6A7*/ /**/
+  0xA6A8, /*U+A6A8*/ /**/
+  0xA6A9, /*U+A6A9*/ /**/
+  0xA6AA, /*U+A6AA*/ /**/
+  0xA6AB, /*U+A6AB*/ /**/
+  0xA6AC, /*U+A6AC*/ /**/
+  0xA6AD, /*U+A6AD*/ /**/
+  0xA6AE, /*U+A6AE*/ /**/
+  0xA6AF, /*U+A6AF*/ /**/
+  0xA6B0, /*U+A6B0*/ /**/
+  0xA6B1, /*U+A6B1*/ /**/
+  0xA6B2, /*U+A6B2*/ /**/
+  0xA6B3, /*U+A6B3*/ /**/
+  0xA6B4, /*U+A6B4*/ /**/
+  0xA6B5, /*U+A6B5*/ /**/
+  0xA6B6, /*U+A6B6*/ /**/
+  0xA6B7, /*U+A6B7*/ /**/
+  0xA6B8, /*U+A6B8*/ /**/
+  0xA6B9, /*U+A6B9*/ /**/
+  0xA6BA, /*U+A6BA*/ /**/
+  0xA6BB, /*U+A6BB*/ /**/
+  0xA6BC, /*U+A6BC*/ /**/
+  0xA6BD, /*U+A6BD*/ /**/
+  0xA6BE, /*U+A6BE*/ /**/
+  0xA6BF, /*U+A6BF*/ /**/
+};
+
+static const u_int16_t upper_table_9[192] = {
+  0xA700, /*U+A700*/ /**/
+  0xA701, /*U+A701*/ /**/
+  0xA702, /*U+A702*/ /**/
+  0xA703, /*U+A703*/ /**/
+  0xA704, /*U+A704*/ /**/
+  0xA705, /*U+A705*/ /**/
+  0xA706, /*U+A706*/ /**/
+  0xA707, /*U+A707*/ /**/
+  0xA708, /*U+A708*/ /**/
+  0xA709, /*U+A709*/ /**/
+  0xA70A, /*U+A70A*/ /**/
+  0xA70B, /*U+A70B*/ /**/
+  0xA70C, /*U+A70C*/ /**/
+  0xA70D, /*U+A70D*/ /**/
+  0xA70E, /*U+A70E*/ /**/
+  0xA70F, /*U+A70F*/ /**/
+  0xA710, /*U+A710*/ /**/
+  0xA711, /*U+A711*/ /**/
+  0xA712, /*U+A712*/ /**/
+  0xA713, /*U+A713*/ /**/
+  0xA714, /*U+A714*/ /**/
+  0xA715, /*U+A715*/ /**/
+  0xA716, /*U+A716*/ /**/
+  0xA717, /*U+A717*/ /**/
+  0xA718, /*U+A718*/ /**/
+  0xA719, /*U+A719*/ /**/
+  0xA71A, /*U+A71A*/ /**/
+  0xA71B, /*U+A71B*/ /**/
+  0xA71C, /*U+A71C*/ /**/
+  0xA71D, /*U+A71D*/ /**/
+  0xA71E, /*U+A71E*/ /**/
+  0xA71F, /*U+A71F*/ /**/
+  0xA720, /*U+A720*/ /**/
+  0xA721, /*U+A721*/ /**/
+  0xA722, /*U+A722*/ /**/
+  0xA722, /*U+A723*/ /*LATIN SMALL LETTER EGYPTOLOGICAL ALEF*/
+  0xA724, /*U+A724*/ /**/
+  0xA724, /*U+A725*/ /*LATIN SMALL LETTER EGYPTOLOGICAL AIN*/
+  0xA726, /*U+A726*/ /**/
+  0xA726, /*U+A727*/ /*LATIN SMALL LETTER HENG*/
+  0xA728, /*U+A728*/ /**/
+  0xA728, /*U+A729*/ /*LATIN SMALL LETTER TZ*/
+  0xA72A, /*U+A72A*/ /**/
+  0xA72A, /*U+A72B*/ /*LATIN SMALL LETTER TRESILLO*/
+  0xA72C, /*U+A72C*/ /**/
+  0xA72C, /*U+A72D*/ /*LATIN SMALL LETTER CUATRILLO*/
+  0xA72E, /*U+A72E*/ /**/
+  0xA72E, /*U+A72F*/ /*LATIN SMALL LETTER CUATRILLO WITH COMMA*/
+  0xA730, /*U+A730*/ /**/
+  0xA731, /*U+A731*/ /**/
+  0xA732, /*U+A732*/ /**/
+  0xA732, /*U+A733*/ /*LATIN SMALL LETTER AA*/
+  0xA734, /*U+A734*/ /**/
+  0xA734, /*U+A735*/ /*LATIN SMALL LETTER AO*/
+  0xA736, /*U+A736*/ /**/
+  0xA736, /*U+A737*/ /*LATIN SMALL LETTER AU*/
+  0xA738, /*U+A738*/ /**/
+  0xA738, /*U+A739*/ /*LATIN SMALL LETTER AV*/
+  0xA73A, /*U+A73A*/ /**/
+  0xA73A, /*U+A73B*/ /*LATIN SMALL LETTER AV WITH HORIZONTAL BAR*/
+  0xA73C, /*U+A73C*/ /**/
+  0xA73C, /*U+A73D*/ /*LATIN SMALL LETTER AY*/
+  0xA73E, /*U+A73E*/ /**/
+  0xA73E, /*U+A73F*/ /*LATIN SMALL LETTER REVERSED C WITH DOT*/
+  0xA740, /*U+A740*/ /**/
+  0xA740, /*U+A741*/ /*LATIN SMALL LETTER K WITH STROKE*/
+  0xA742, /*U+A742*/ /**/
+  0xA742, /*U+A743*/ /*LATIN SMALL LETTER K WITH DIAGONAL STROKE*/
+  0xA744, /*U+A744*/ /**/
+  0xA744, /*U+A745*/ /*LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE*/
+  0xA746, /*U+A746*/ /**/
+  0xA746, /*U+A747*/ /*LATIN SMALL LETTER BROKEN L*/
+  0xA748, /*U+A748*/ /**/
+  0xA748, /*U+A749*/ /*LATIN SMALL LETTER L WITH HIGH STROKE*/
+  0xA74A, /*U+A74A*/ /**/
+  0xA74A, /*U+A74B*/ /*LATIN SMALL LETTER O WITH LONG STROKE OVERLAY*/
+  0xA74C, /*U+A74C*/ /**/
+  0xA74C, /*U+A74D*/ /*LATIN SMALL LETTER O WITH LOOP*/
+  0xA74E, /*U+A74E*/ /**/
+  0xA74E, /*U+A74F*/ /*LATIN SMALL LETTER OO*/
+  0xA750, /*U+A750*/ /**/
+  0xA750, /*U+A751*/ /*LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER*/
+  0xA752, /*U+A752*/ /**/
+  0xA752, /*U+A753*/ /*LATIN SMALL LETTER P WITH FLOURISH*/
+  0xA754, /*U+A754*/ /**/
+  0xA754, /*U+A755*/ /*LATIN SMALL LETTER P WITH SQUIRREL TAIL*/
+  0xA756, /*U+A756*/ /**/
+  0xA756, /*U+A757*/ /*LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER*/
+  0xA758, /*U+A758*/ /**/
+  0xA758, /*U+A759*/ /*LATIN SMALL LETTER Q WITH DIAGONAL STROKE*/
+  0xA75A, /*U+A75A*/ /**/
+  0xA75A, /*U+A75B*/ /*LATIN SMALL LETTER R ROTUNDA*/
+  0xA75C, /*U+A75C*/ /**/
+  0xA75C, /*U+A75D*/ /*LATIN SMALL LETTER RUM ROTUNDA*/
+  0xA75E, /*U+A75E*/ /**/
+  0xA75E, /*U+A75F*/ /*LATIN SMALL LETTER V WITH DIAGONAL STROKE*/
+  0xA760, /*U+A760*/ /**/
+  0xA760, /*U+A761*/ /*LATIN SMALL LETTER VY*/
+  0xA762, /*U+A762*/ /**/
+  0xA762, /*U+A763*/ /*LATIN SMALL LETTER VISIGOTHIC Z*/
+  0xA764, /*U+A764*/ /**/
+  0xA764, /*U+A765*/ /*LATIN SMALL LETTER THORN WITH STROKE*/
+  0xA766, /*U+A766*/ /**/
+  0xA766, /*U+A767*/ /*LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER*/
+  0xA768, /*U+A768*/ /**/
+  0xA768, /*U+A769*/ /*LATIN SMALL LETTER VEND*/
+  0xA76A, /*U+A76A*/ /**/
+  0xA76A, /*U+A76B*/ /*LATIN SMALL LETTER ET*/
+  0xA76C, /*U+A76C*/ /**/
+  0xA76C, /*U+A76D*/ /*LATIN SMALL LETTER IS*/
+  0xA76E, /*U+A76E*/ /**/
+  0xA76E, /*U+A76F*/ /*LATIN SMALL LETTER CON*/
+  0xA770, /*U+A770*/ /**/
+  0xA771, /*U+A771*/ /**/
+  0xA772, /*U+A772*/ /**/
+  0xA773, /*U+A773*/ /**/
+  0xA774, /*U+A774*/ /**/
+  0xA775, /*U+A775*/ /**/
+  0xA776, /*U+A776*/ /**/
+  0xA777, /*U+A777*/ /**/
+  0xA778, /*U+A778*/ /**/
+  0xA779, /*U+A779*/ /**/
+  0xA779, /*U+A77A*/ /*LATIN SMALL LETTER INSULAR D*/
+  0xA77B, /*U+A77B*/ /**/
+  0xA77B, /*U+A77C*/ /*LATIN SMALL LETTER INSULAR F*/
+  0xA77D, /*U+A77D*/ /**/
+  0xA77E, /*U+A77E*/ /**/
+  0xA77E, /*U+A77F*/ /*LATIN SMALL LETTER TURNED INSULAR G*/
+  0xA780, /*U+A780*/ /**/
+  0xA780, /*U+A781*/ /*LATIN SMALL LETTER TURNED L*/
+  0xA782, /*U+A782*/ /**/
+  0xA782, /*U+A783*/ /*LATIN SMALL LETTER INSULAR R*/
+  0xA784, /*U+A784*/ /**/
+  0xA784, /*U+A785*/ /*LATIN SMALL LETTER INSULAR S*/
+  0xA786, /*U+A786*/ /**/
+  0xA786, /*U+A787*/ /*LATIN SMALL LETTER INSULAR T*/
+  0xA788, /*U+A788*/ /**/
+  0xA789, /*U+A789*/ /**/
+  0xA78A, /*U+A78A*/ /**/
+  0xA78B, /*U+A78B*/ /**/
+  0xA78B, /*U+A78C*/ /*LATIN SMALL LETTER SALTILLO*/
+  0xA78D, /*U+A78D*/ /**/
+  0xA78E, /*U+A78E*/ /**/
+  0xA78F, /*U+A78F*/ /**/
+  0xA790, /*U+A790*/ /**/
+  0xA790, /*U+A791*/ /*LATIN SMALL LETTER N WITH DESCENDER*/
+  0xA792, /*U+A792*/ /**/
+  0xA793, /*U+A793*/ /**/
+  0xA794, /*U+A794*/ /**/
+  0xA795, /*U+A795*/ /**/
+  0xA796, /*U+A796*/ /**/
+  0xA797, /*U+A797*/ /**/
+  0xA798, /*U+A798*/ /**/
+  0xA799, /*U+A799*/ /**/
+  0xA79A, /*U+A79A*/ /**/
+  0xA79B, /*U+A79B*/ /**/
+  0xA79C, /*U+A79C*/ /**/
+  0xA79D, /*U+A79D*/ /**/
+  0xA79E, /*U+A79E*/ /**/
+  0xA79F, /*U+A79F*/ /**/
+  0xA7A0, /*U+A7A0*/ /**/
+  0xA7A0, /*U+A7A1*/ /*LATIN SMALL LETTER G WITH OBLIQUE STROKE*/
+  0xA7A2, /*U+A7A2*/ /**/
+  0xA7A2, /*U+A7A3*/ /*LATIN SMALL LETTER K WITH OBLIQUE STROKE*/
+  0xA7A4, /*U+A7A4*/ /**/
+  0xA7A4, /*U+A7A5*/ /*LATIN SMALL LETTER N WITH OBLIQUE STROKE*/
+  0xA7A6, /*U+A7A6*/ /**/
+  0xA7A6, /*U+A7A7*/ /*LATIN SMALL LETTER R WITH OBLIQUE STROKE*/
+  0xA7A8, /*U+A7A8*/ /**/
+  0xA7A8, /*U+A7A9*/ /*LATIN SMALL LETTER S WITH OBLIQUE STROKE*/
+  0xA7AA, /*U+A7AA*/ /**/
+  0xA7AB, /*U+A7AB*/ /**/
+  0xA7AC, /*U+A7AC*/ /**/
+  0xA7AD, /*U+A7AD*/ /**/
+  0xA7AE, /*U+A7AE*/ /**/
+  0xA7AF, /*U+A7AF*/ /**/
+  0xA7B0, /*U+A7B0*/ /**/
+  0xA7B1, /*U+A7B1*/ /**/
+  0xA7B2, /*U+A7B2*/ /**/
+  0xA7B3, /*U+A7B3*/ /**/
+  0xA7B4, /*U+A7B4*/ /**/
+  0xA7B5, /*U+A7B5*/ /**/
+  0xA7B6, /*U+A7B6*/ /**/
+  0xA7B7, /*U+A7B7*/ /**/
+  0xA7B8, /*U+A7B8*/ /**/
+  0xA7B9, /*U+A7B9*/ /**/
+  0xA7BA, /*U+A7BA*/ /**/
+  0xA7BB, /*U+A7BB*/ /**/
+  0xA7BC, /*U+A7BC*/ /**/
+  0xA7BD, /*U+A7BD*/ /**/
+  0xA7BE, /*U+A7BE*/ /**/
+  0xA7BF, /*U+A7BF*/ /**/
+};
+
+static const u_int16_t upper_table_10[64] = {
+  0xFF40, /*U+FF40*/ /**/
+  0xFF21, /*U+FF41*/ /*FULLWIDTH LATIN SMALL LETTER A*/
+  0xFF22, /*U+FF42*/ /*FULLWIDTH LATIN SMALL LETTER B*/
+  0xFF23, /*U+FF43*/ /*FULLWIDTH LATIN SMALL LETTER C*/
+  0xFF24, /*U+FF44*/ /*FULLWIDTH LATIN SMALL LETTER D*/
+  0xFF25, /*U+FF45*/ /*FULLWIDTH LATIN SMALL LETTER E*/
+  0xFF26, /*U+FF46*/ /*FULLWIDTH LATIN SMALL LETTER F*/
+  0xFF27, /*U+FF47*/ /*FULLWIDTH LATIN SMALL LETTER G*/
+  0xFF28, /*U+FF48*/ /*FULLWIDTH LATIN SMALL LETTER H*/
+  0xFF29, /*U+FF49*/ /*FULLWIDTH LATIN SMALL LETTER I*/
+  0xFF2A, /*U+FF4A*/ /*FULLWIDTH LATIN SMALL LETTER J*/
+  0xFF2B, /*U+FF4B*/ /*FULLWIDTH LATIN SMALL LETTER K*/
+  0xFF2C, /*U+FF4C*/ /*FULLWIDTH LATIN SMALL LETTER L*/
+  0xFF2D, /*U+FF4D*/ /*FULLWIDTH LATIN SMALL LETTER M*/
+  0xFF2E, /*U+FF4E*/ /*FULLWIDTH LATIN SMALL LETTER N*/
+  0xFF2F, /*U+FF4F*/ /*FULLWIDTH LATIN SMALL LETTER O*/
+  0xFF30, /*U+FF50*/ /*FULLWIDTH LATIN SMALL LETTER P*/
+  0xFF31, /*U+FF51*/ /*FULLWIDTH LATIN SMALL LETTER Q*/
+  0xFF32, /*U+FF52*/ /*FULLWIDTH LATIN SMALL LETTER R*/
+  0xFF33, /*U+FF53*/ /*FULLWIDTH LATIN SMALL LETTER S*/
+  0xFF34, /*U+FF54*/ /*FULLWIDTH LATIN SMALL LETTER T*/
+  0xFF35, /*U+FF55*/ /*FULLWIDTH LATIN SMALL LETTER U*/
+  0xFF36, /*U+FF56*/ /*FULLWIDTH LATIN SMALL LETTER V*/
+  0xFF37, /*U+FF57*/ /*FULLWIDTH LATIN SMALL LETTER W*/
+  0xFF38, /*U+FF58*/ /*FULLWIDTH LATIN SMALL LETTER X*/
+  0xFF39, /*U+FF59*/ /*FULLWIDTH LATIN SMALL LETTER Y*/
+  0xFF3A, /*U+FF5A*/ /*FULLWIDTH LATIN SMALL LETTER Z*/
+  0xFF5B, /*U+FF5B*/ /**/
+  0xFF5C, /*U+FF5C*/ /**/
+  0xFF5D, /*U+FF5D*/ /**/
+  0xFF5E, /*U+FF5E*/ /**/
+  0xFF5F, /*U+FF5F*/ /**/
+  0xFF60, /*U+FF60*/ /**/
+  0xFF61, /*U+FF61*/ /**/
+  0xFF62, /*U+FF62*/ /**/
+  0xFF63, /*U+FF63*/ /**/
+  0xFF64, /*U+FF64*/ /**/
+  0xFF65, /*U+FF65*/ /**/
+  0xFF66, /*U+FF66*/ /**/
+  0xFF67, /*U+FF67*/ /**/
+  0xFF68, /*U+FF68*/ /**/
+  0xFF69, /*U+FF69*/ /**/
+  0xFF6A, /*U+FF6A*/ /**/
+  0xFF6B, /*U+FF6B*/ /**/
+  0xFF6C, /*U+FF6C*/ /**/
+  0xFF6D, /*U+FF6D*/ /**/
+  0xFF6E, /*U+FF6E*/ /**/
+  0xFF6F, /*U+FF6F*/ /**/
+  0xFF70, /*U+FF70*/ /**/
+  0xFF71, /*U+FF71*/ /**/
+  0xFF72, /*U+FF72*/ /**/
+  0xFF73, /*U+FF73*/ /**/
+  0xFF74, /*U+FF74*/ /**/
+  0xFF75, /*U+FF75*/ /**/
+  0xFF76, /*U+FF76*/ /**/
+  0xFF77, /*U+FF77*/ /**/
+  0xFF78, /*U+FF78*/ /**/
+  0xFF79, /*U+FF79*/ /**/
+  0xFF7A, /*U+FF7A*/ /**/
+  0xFF7B, /*U+FF7B*/ /**/
+  0xFF7C, /*U+FF7C*/ /**/
+  0xFF7D, /*U+FF7D*/ /**/
+  0xFF7E, /*U+FF7E*/ /**/
+  0xFF7F, /*U+FF7F*/ /**/
+};
+
+static const u_int32_t upper_table_sp_1[128] = {
+  0xD801DC00, /*0xD801DC00*/ /*U+010400*/ /*U+010400*/ /**/
+  0xD801DC01, /*0xD801DC01*/ /*U+010401*/ /*U+010401*/ /**/
+  0xD801DC02, /*0xD801DC02*/ /*U+010402*/ /*U+010402*/ /**/
+  0xD801DC03, /*0xD801DC03*/ /*U+010403*/ /*U+010403*/ /**/
+  0xD801DC04, /*0xD801DC04*/ /*U+010404*/ /*U+010404*/ /**/
+  0xD801DC05, /*0xD801DC05*/ /*U+010405*/ /*U+010405*/ /**/
+  0xD801DC06, /*0xD801DC06*/ /*U+010406*/ /*U+010406*/ /**/
+  0xD801DC07, /*0xD801DC07*/ /*U+010407*/ /*U+010407*/ /**/
+  0xD801DC08, /*0xD801DC08*/ /*U+010408*/ /*U+010408*/ /**/
+  0xD801DC09, /*0xD801DC09*/ /*U+010409*/ /*U+010409*/ /**/
+  0xD801DC0A, /*0xD801DC0A*/ /*U+01040A*/ /*U+01040A*/ /**/
+  0xD801DC0B, /*0xD801DC0B*/ /*U+01040B*/ /*U+01040B*/ /**/
+  0xD801DC0C, /*0xD801DC0C*/ /*U+01040C*/ /*U+01040C*/ /**/
+  0xD801DC0D, /*0xD801DC0D*/ /*U+01040D*/ /*U+01040D*/ /**/
+  0xD801DC0E, /*0xD801DC0E*/ /*U+01040E*/ /*U+01040E*/ /**/
+  0xD801DC0F, /*0xD801DC0F*/ /*U+01040F*/ /*U+01040F*/ /**/
+  0xD801DC10, /*0xD801DC10*/ /*U+010410*/ /*U+010410*/ /**/
+  0xD801DC11, /*0xD801DC11*/ /*U+010411*/ /*U+010411*/ /**/
+  0xD801DC12, /*0xD801DC12*/ /*U+010412*/ /*U+010412*/ /**/
+  0xD801DC13, /*0xD801DC13*/ /*U+010413*/ /*U+010413*/ /**/
+  0xD801DC14, /*0xD801DC14*/ /*U+010414*/ /*U+010414*/ /**/
+  0xD801DC15, /*0xD801DC15*/ /*U+010415*/ /*U+010415*/ /**/
+  0xD801DC16, /*0xD801DC16*/ /*U+010416*/ /*U+010416*/ /**/
+  0xD801DC17, /*0xD801DC17*/ /*U+010417*/ /*U+010417*/ /**/
+  0xD801DC18, /*0xD801DC18*/ /*U+010418*/ /*U+010418*/ /**/
+  0xD801DC19, /*0xD801DC19*/ /*U+010419*/ /*U+010419*/ /**/
+  0xD801DC1A, /*0xD801DC1A*/ /*U+01041A*/ /*U+01041A*/ /**/
+  0xD801DC1B, /*0xD801DC1B*/ /*U+01041B*/ /*U+01041B*/ /**/
+  0xD801DC1C, /*0xD801DC1C*/ /*U+01041C*/ /*U+01041C*/ /**/
+  0xD801DC1D, /*0xD801DC1D*/ /*U+01041D*/ /*U+01041D*/ /**/
+  0xD801DC1E, /*0xD801DC1E*/ /*U+01041E*/ /*U+01041E*/ /**/
+  0xD801DC1F, /*0xD801DC1F*/ /*U+01041F*/ /*U+01041F*/ /**/
+  0xD801DC20, /*0xD801DC20*/ /*U+010420*/ /*U+010420*/ /**/
+  0xD801DC21, /*0xD801DC21*/ /*U+010421*/ /*U+010421*/ /**/
+  0xD801DC22, /*0xD801DC22*/ /*U+010422*/ /*U+010422*/ /**/
+  0xD801DC23, /*0xD801DC23*/ /*U+010423*/ /*U+010423*/ /**/
+  0xD801DC24, /*0xD801DC24*/ /*U+010424*/ /*U+010424*/ /**/
+  0xD801DC25, /*0xD801DC25*/ /*U+010425*/ /*U+010425*/ /**/
+  0xD801DC26, /*0xD801DC26*/ /*U+010426*/ /*U+010426*/ /**/
+  0xD801DC27, /*0xD801DC27*/ /*U+010427*/ /*U+010427*/ /**/
+  0xD801DC00, /*0xD801DC28*/ /*U+010400*/ /*U+010428*/ /*DESERET SMALL LETTER LONG I*/
+  0xD801DC01, /*0xD801DC29*/ /*U+010401*/ /*U+010429*/ /*DESERET SMALL LETTER LONG E*/
+  0xD801DC02, /*0xD801DC2A*/ /*U+010402*/ /*U+01042A*/ /*DESERET SMALL LETTER LONG A*/
+  0xD801DC03, /*0xD801DC2B*/ /*U+010403*/ /*U+01042B*/ /*DESERET SMALL LETTER LONG AH*/
+  0xD801DC04, /*0xD801DC2C*/ /*U+010404*/ /*U+01042C*/ /*DESERET SMALL LETTER LONG O*/
+  0xD801DC05, /*0xD801DC2D*/ /*U+010405*/ /*U+01042D*/ /*DESERET SMALL LETTER LONG OO*/
+  0xD801DC06, /*0xD801DC2E*/ /*U+010406*/ /*U+01042E*/ /*DESERET SMALL LETTER SHORT I*/
+  0xD801DC07, /*0xD801DC2F*/ /*U+010407*/ /*U+01042F*/ /*DESERET SMALL LETTER SHORT E*/
+  0xD801DC08, /*0xD801DC30*/ /*U+010408*/ /*U+010430*/ /*DESERET SMALL LETTER SHORT A*/
+  0xD801DC09, /*0xD801DC31*/ /*U+010409*/ /*U+010431*/ /*DESERET SMALL LETTER SHORT AH*/
+  0xD801DC0A, /*0xD801DC32*/ /*U+01040A*/ /*U+010432*/ /*DESERET SMALL LETTER SHORT O*/
+  0xD801DC0B, /*0xD801DC33*/ /*U+01040B*/ /*U+010433*/ /*DESERET SMALL LETTER SHORT OO*/
+  0xD801DC0C, /*0xD801DC34*/ /*U+01040C*/ /*U+010434*/ /*DESERET SMALL LETTER AY*/
+  0xD801DC0D, /*0xD801DC35*/ /*U+01040D*/ /*U+010435*/ /*DESERET SMALL LETTER OW*/
+  0xD801DC0E, /*0xD801DC36*/ /*U+01040E*/ /*U+010436*/ /*DESERET SMALL LETTER WU*/
+  0xD801DC0F, /*0xD801DC37*/ /*U+01040F*/ /*U+010437*/ /*DESERET SMALL LETTER YEE*/
+  0xD801DC10, /*0xD801DC38*/ /*U+010410*/ /*U+010438*/ /*DESERET SMALL LETTER H*/
+  0xD801DC11, /*0xD801DC39*/ /*U+010411*/ /*U+010439*/ /*DESERET SMALL LETTER PEE*/
+  0xD801DC12, /*0xD801DC3A*/ /*U+010412*/ /*U+01043A*/ /*DESERET SMALL LETTER BEE*/
+  0xD801DC13, /*0xD801DC3B*/ /*U+010413*/ /*U+01043B*/ /*DESERET SMALL LETTER TEE*/
+  0xD801DC14, /*0xD801DC3C*/ /*U+010414*/ /*U+01043C*/ /*DESERET SMALL LETTER DEE*/
+  0xD801DC15, /*0xD801DC3D*/ /*U+010415*/ /*U+01043D*/ /*DESERET SMALL LETTER CHEE*/
+  0xD801DC16, /*0xD801DC3E*/ /*U+010416*/ /*U+01043E*/ /*DESERET SMALL LETTER JEE*/
+  0xD801DC17, /*0xD801DC3F*/ /*U+010417*/ /*U+01043F*/ /*DESERET SMALL LETTER KAY*/
+  0xD801DC18, /*0xD801DC40*/ /*U+010418*/ /*U+010440*/ /*DESERET SMALL LETTER GAY*/
+  0xD801DC19, /*0xD801DC41*/ /*U+010419*/ /*U+010441*/ /*DESERET SMALL LETTER EF*/
+  0xD801DC1A, /*0xD801DC42*/ /*U+01041A*/ /*U+010442*/ /*DESERET SMALL LETTER VEE*/
+  0xD801DC1B, /*0xD801DC43*/ /*U+01041B*/ /*U+010443*/ /*DESERET SMALL LETTER ETH*/
+  0xD801DC1C, /*0xD801DC44*/ /*U+01041C*/ /*U+010444*/ /*DESERET SMALL LETTER THEE*/
+  0xD801DC1D, /*0xD801DC45*/ /*U+01041D*/ /*U+010445*/ /*DESERET SMALL LETTER ES*/
+  0xD801DC1E, /*0xD801DC46*/ /*U+01041E*/ /*U+010446*/ /*DESERET SMALL LETTER ZEE*/
+  0xD801DC1F, /*0xD801DC47*/ /*U+01041F*/ /*U+010447*/ /*DESERET SMALL LETTER ESH*/
+  0xD801DC20, /*0xD801DC48*/ /*U+010420*/ /*U+010448*/ /*DESERET SMALL LETTER ZHEE*/
+  0xD801DC21, /*0xD801DC49*/ /*U+010421*/ /*U+010449*/ /*DESERET SMALL LETTER ER*/
+  0xD801DC22, /*0xD801DC4A*/ /*U+010422*/ /*U+01044A*/ /*DESERET SMALL LETTER EL*/
+  0xD801DC23, /*0xD801DC4B*/ /*U+010423*/ /*U+01044B*/ /*DESERET SMALL LETTER EM*/
+  0xD801DC24, /*0xD801DC4C*/ /*U+010424*/ /*U+01044C*/ /*DESERET SMALL LETTER EN*/
+  0xD801DC25, /*0xD801DC4D*/ /*U+010425*/ /*U+01044D*/ /*DESERET SMALL LETTER ENG*/
+  0xD801DC26, /*0xD801DC4E*/ /*U+010426*/ /*U+01044E*/ /*DESERET SMALL LETTER OI*/
+  0xD801DC27, /*0xD801DC4F*/ /*U+010427*/ /*U+01044F*/ /*DESERET SMALL LETTER EW*/
+  0xD801DC50, /*0xD801DC50*/ /*U+010450*/ /*U+010450*/ /**/
+  0xD801DC51, /*0xD801DC51*/ /*U+010451*/ /*U+010451*/ /**/
+  0xD801DC52, /*0xD801DC52*/ /*U+010452*/ /*U+010452*/ /**/
+  0xD801DC53, /*0xD801DC53*/ /*U+010453*/ /*U+010453*/ /**/
+  0xD801DC54, /*0xD801DC54*/ /*U+010454*/ /*U+010454*/ /**/
+  0xD801DC55, /*0xD801DC55*/ /*U+010455*/ /*U+010455*/ /**/
+  0xD801DC56, /*0xD801DC56*/ /*U+010456*/ /*U+010456*/ /**/
+  0xD801DC57, /*0xD801DC57*/ /*U+010457*/ /*U+010457*/ /**/
+  0xD801DC58, /*0xD801DC58*/ /*U+010458*/ /*U+010458*/ /**/
+  0xD801DC59, /*0xD801DC59*/ /*U+010459*/ /*U+010459*/ /**/
+  0xD801DC5A, /*0xD801DC5A*/ /*U+01045A*/ /*U+01045A*/ /**/
+  0xD801DC5B, /*0xD801DC5B*/ /*U+01045B*/ /*U+01045B*/ /**/
+  0xD801DC5C, /*0xD801DC5C*/ /*U+01045C*/ /*U+01045C*/ /**/
+  0xD801DC5D, /*0xD801DC5D*/ /*U+01045D*/ /*U+01045D*/ /**/
+  0xD801DC5E, /*0xD801DC5E*/ /*U+01045E*/ /*U+01045E*/ /**/
+  0xD801DC5F, /*0xD801DC5F*/ /*U+01045F*/ /*U+01045F*/ /**/
+  0xD801DC60, /*0xD801DC60*/ /*U+010460*/ /*U+010460*/ /**/
+  0xD801DC61, /*0xD801DC61*/ /*U+010461*/ /*U+010461*/ /**/
+  0xD801DC62, /*0xD801DC62*/ /*U+010462*/ /*U+010462*/ /**/
+  0xD801DC63, /*0xD801DC63*/ /*U+010463*/ /*U+010463*/ /**/
+  0xD801DC64, /*0xD801DC64*/ /*U+010464*/ /*U+010464*/ /**/
+  0xD801DC65, /*0xD801DC65*/ /*U+010465*/ /*U+010465*/ /**/
+  0xD801DC66, /*0xD801DC66*/ /*U+010466*/ /*U+010466*/ /**/
+  0xD801DC67, /*0xD801DC67*/ /*U+010467*/ /*U+010467*/ /**/
+  0xD801DC68, /*0xD801DC68*/ /*U+010468*/ /*U+010468*/ /**/
+  0xD801DC69, /*0xD801DC69*/ /*U+010469*/ /*U+010469*/ /**/
+  0xD801DC6A, /*0xD801DC6A*/ /*U+01046A*/ /*U+01046A*/ /**/
+  0xD801DC6B, /*0xD801DC6B*/ /*U+01046B*/ /*U+01046B*/ /**/
+  0xD801DC6C, /*0xD801DC6C*/ /*U+01046C*/ /*U+01046C*/ /**/
+  0xD801DC6D, /*0xD801DC6D*/ /*U+01046D*/ /*U+01046D*/ /**/
+  0xD801DC6E, /*0xD801DC6E*/ /*U+01046E*/ /*U+01046E*/ /**/
+  0xD801DC6F, /*0xD801DC6F*/ /*U+01046F*/ /*U+01046F*/ /**/
+  0xD801DC70, /*0xD801DC70*/ /*U+010470*/ /*U+010470*/ /**/
+  0xD801DC71, /*0xD801DC71*/ /*U+010471*/ /*U+010471*/ /**/
+  0xD801DC72, /*0xD801DC72*/ /*U+010472*/ /*U+010472*/ /**/
+  0xD801DC73, /*0xD801DC73*/ /*U+010473*/ /*U+010473*/ /**/
+  0xD801DC74, /*0xD801DC74*/ /*U+010474*/ /*U+010474*/ /**/
+  0xD801DC75, /*0xD801DC75*/ /*U+010475*/ /*U+010475*/ /**/
+  0xD801DC76, /*0xD801DC76*/ /*U+010476*/ /*U+010476*/ /**/
+  0xD801DC77, /*0xD801DC77*/ /*U+010477*/ /*U+010477*/ /**/
+  0xD801DC78, /*0xD801DC78*/ /*U+010478*/ /*U+010478*/ /**/
+  0xD801DC79, /*0xD801DC79*/ /*U+010479*/ /*U+010479*/ /**/
+  0xD801DC7A, /*0xD801DC7A*/ /*U+01047A*/ /*U+01047A*/ /**/
+  0xD801DC7B, /*0xD801DC7B*/ /*U+01047B*/ /*U+01047B*/ /**/
+  0xD801DC7C, /*0xD801DC7C*/ /*U+01047C*/ /*U+01047C*/ /**/
+  0xD801DC7D, /*0xD801DC7D*/ /*U+01047D*/ /*U+01047D*/ /**/
+  0xD801DC7E, /*0xD801DC7E*/ /*U+01047E*/ /*U+01047E*/ /**/
+  0xD801DC7F, /*0xD801DC7F*/ /*U+01047F*/ /*U+01047F*/ /**/
+};
+
+static const u_int16_t lower_table_1[64] = {
+  0x0040, /*U+0040*/ /**/
+  0x0061, /*U+0041*/ /*LATIN CAPITAL LETTER A*/
+  0x0062, /*U+0042*/ /*LATIN CAPITAL LETTER B*/
+  0x0063, /*U+0043*/ /*LATIN CAPITAL LETTER C*/
+  0x0064, /*U+0044*/ /*LATIN CAPITAL LETTER D*/
+  0x0065, /*U+0045*/ /*LATIN CAPITAL LETTER E*/
+  0x0066, /*U+0046*/ /*LATIN CAPITAL LETTER F*/
+  0x0067, /*U+0047*/ /*LATIN CAPITAL LETTER G*/
+  0x0068, /*U+0048*/ /*LATIN CAPITAL LETTER H*/
+  0x0069, /*U+0049*/ /*LATIN CAPITAL LETTER I*/
+  0x006A, /*U+004A*/ /*LATIN CAPITAL LETTER J*/
+  0x006B, /*U+004B*/ /*LATIN CAPITAL LETTER K*/
+  0x006C, /*U+004C*/ /*LATIN CAPITAL LETTER L*/
+  0x006D, /*U+004D*/ /*LATIN CAPITAL LETTER M*/
+  0x006E, /*U+004E*/ /*LATIN CAPITAL LETTER N*/
+  0x006F, /*U+004F*/ /*LATIN CAPITAL LETTER O*/
+  0x0070, /*U+0050*/ /*LATIN CAPITAL LETTER P*/
+  0x0071, /*U+0051*/ /*LATIN CAPITAL LETTER Q*/
+  0x0072, /*U+0052*/ /*LATIN CAPITAL LETTER R*/
+  0x0073, /*U+0053*/ /*LATIN CAPITAL LETTER S*/
+  0x0074, /*U+0054*/ /*LATIN CAPITAL LETTER T*/
+  0x0075, /*U+0055*/ /*LATIN CAPITAL LETTER U*/
+  0x0076, /*U+0056*/ /*LATIN CAPITAL LETTER V*/
+  0x0077, /*U+0057*/ /*LATIN CAPITAL LETTER W*/
+  0x0078, /*U+0058*/ /*LATIN CAPITAL LETTER X*/
+  0x0079, /*U+0059*/ /*LATIN CAPITAL LETTER Y*/
+  0x007A, /*U+005A*/ /*LATIN CAPITAL LETTER Z*/
+  0x005B, /*U+005B*/ /**/
+  0x005C, /*U+005C*/ /**/
+  0x005D, /*U+005D*/ /**/
+  0x005E, /*U+005E*/ /**/
+  0x005F, /*U+005F*/ /**/
+  0x0060, /*U+0060*/ /**/
+  0x0061, /*U+0061*/ /**/
+  0x0062, /*U+0062*/ /**/
+  0x0063, /*U+0063*/ /**/
+  0x0064, /*U+0064*/ /**/
+  0x0065, /*U+0065*/ /**/
+  0x0066, /*U+0066*/ /**/
+  0x0067, /*U+0067*/ /**/
+  0x0068, /*U+0068*/ /**/
+  0x0069, /*U+0069*/ /**/
+  0x006A, /*U+006A*/ /**/
+  0x006B, /*U+006B*/ /**/
+  0x006C, /*U+006C*/ /**/
+  0x006D, /*U+006D*/ /**/
+  0x006E, /*U+006E*/ /**/
+  0x006F, /*U+006F*/ /**/
+  0x0070, /*U+0070*/ /**/
+  0x0071, /*U+0071*/ /**/
+  0x0072, /*U+0072*/ /**/
+  0x0073, /*U+0073*/ /**/
+  0x0074, /*U+0074*/ /**/
+  0x0075, /*U+0075*/ /**/
+  0x0076, /*U+0076*/ /**/
+  0x0077, /*U+0077*/ /**/
+  0x0078, /*U+0078*/ /**/
+  0x0079, /*U+0079*/ /**/
+  0x007A, /*U+007A*/ /**/
+  0x007B, /*U+007B*/ /**/
+  0x007C, /*U+007C*/ /**/
+  0x007D, /*U+007D*/ /**/
+  0x007E, /*U+007E*/ /**/
+  0x007F, /*U+007F*/ /**/
+};
+
+static const u_int16_t lower_table_2[448] = {
+  0x00E0, /*U+00C0*/ /*LATIN CAPITAL LETTER A WITH GRAVE*/
+  0x00E1, /*U+00C1*/ /*LATIN CAPITAL LETTER A WITH ACUTE*/
+  0x00E2, /*U+00C2*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX*/
+  0x00E3, /*U+00C3*/ /*LATIN CAPITAL LETTER A WITH TILDE*/
+  0x00E4, /*U+00C4*/ /*LATIN CAPITAL LETTER A WITH DIAERESIS*/
+  0x00E5, /*U+00C5*/ /*LATIN CAPITAL LETTER A WITH RING ABOVE*/
+  0x00E6, /*U+00C6*/ /*LATIN CAPITAL LETTER AE*/
+  0x00E7, /*U+00C7*/ /*LATIN CAPITAL LETTER C WITH CEDILLA*/
+  0x00E8, /*U+00C8*/ /*LATIN CAPITAL LETTER E WITH GRAVE*/
+  0x00E9, /*U+00C9*/ /*LATIN CAPITAL LETTER E WITH ACUTE*/
+  0x00EA, /*U+00CA*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX*/
+  0x00EB, /*U+00CB*/ /*LATIN CAPITAL LETTER E WITH DIAERESIS*/
+  0x00EC, /*U+00CC*/ /*LATIN CAPITAL LETTER I WITH GRAVE*/
+  0x00ED, /*U+00CD*/ /*LATIN CAPITAL LETTER I WITH ACUTE*/
+  0x00EE, /*U+00CE*/ /*LATIN CAPITAL LETTER I WITH CIRCUMFLEX*/
+  0x00EF, /*U+00CF*/ /*LATIN CAPITAL LETTER I WITH DIAERESIS*/
+  0x00F0, /*U+00D0*/ /*LATIN CAPITAL LETTER ETH*/
+  0x00F1, /*U+00D1*/ /*LATIN CAPITAL LETTER N WITH TILDE*/
+  0x00F2, /*U+00D2*/ /*LATIN CAPITAL LETTER O WITH GRAVE*/
+  0x00F3, /*U+00D3*/ /*LATIN CAPITAL LETTER O WITH ACUTE*/
+  0x00F4, /*U+00D4*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX*/
+  0x00F5, /*U+00D5*/ /*LATIN CAPITAL LETTER O WITH TILDE*/
+  0x00F6, /*U+00D6*/ /*LATIN CAPITAL LETTER O WITH DIAERESIS*/
+  0x00D7, /*U+00D7*/ /**/
+  0x00F8, /*U+00D8*/ /*LATIN CAPITAL LETTER O WITH STROKE*/
+  0x00F9, /*U+00D9*/ /*LATIN CAPITAL LETTER U WITH GRAVE*/
+  0x00FA, /*U+00DA*/ /*LATIN CAPITAL LETTER U WITH ACUTE*/
+  0x00FB, /*U+00DB*/ /*LATIN CAPITAL LETTER U WITH CIRCUMFLEX*/
+  0x00FC, /*U+00DC*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS*/
+  0x00FD, /*U+00DD*/ /*LATIN CAPITAL LETTER Y WITH ACUTE*/
+  0x00FE, /*U+00DE*/ /*LATIN CAPITAL LETTER THORN*/
+  0x00DF, /*U+00DF*/ /**/
+  0x00E0, /*U+00E0*/ /**/
+  0x00E1, /*U+00E1*/ /**/
+  0x00E2, /*U+00E2*/ /**/
+  0x00E3, /*U+00E3*/ /**/
+  0x00E4, /*U+00E4*/ /**/
+  0x00E5, /*U+00E5*/ /**/
+  0x00E6, /*U+00E6*/ /**/
+  0x00E7, /*U+00E7*/ /**/
+  0x00E8, /*U+00E8*/ /**/
+  0x00E9, /*U+00E9*/ /**/
+  0x00EA, /*U+00EA*/ /**/
+  0x00EB, /*U+00EB*/ /**/
+  0x00EC, /*U+00EC*/ /**/
+  0x00ED, /*U+00ED*/ /**/
+  0x00EE, /*U+00EE*/ /**/
+  0x00EF, /*U+00EF*/ /**/
+  0x00F0, /*U+00F0*/ /**/
+  0x00F1, /*U+00F1*/ /**/
+  0x00F2, /*U+00F2*/ /**/
+  0x00F3, /*U+00F3*/ /**/
+  0x00F4, /*U+00F4*/ /**/
+  0x00F5, /*U+00F5*/ /**/
+  0x00F6, /*U+00F6*/ /**/
+  0x00F7, /*U+00F7*/ /**/
+  0x00F8, /*U+00F8*/ /**/
+  0x00F9, /*U+00F9*/ /**/
+  0x00FA, /*U+00FA*/ /**/
+  0x00FB, /*U+00FB*/ /**/
+  0x00FC, /*U+00FC*/ /**/
+  0x00FD, /*U+00FD*/ /**/
+  0x00FE, /*U+00FE*/ /**/
+  0x00FF, /*U+00FF*/ /**/
+  0x0101, /*U+0100*/ /*LATIN CAPITAL LETTER A WITH MACRON*/
+  0x0101, /*U+0101*/ /**/
+  0x0103, /*U+0102*/ /*LATIN CAPITAL LETTER A WITH BREVE*/
+  0x0103, /*U+0103*/ /**/
+  0x0105, /*U+0104*/ /*LATIN CAPITAL LETTER A WITH OGONEK*/
+  0x0105, /*U+0105*/ /**/
+  0x0107, /*U+0106*/ /*LATIN CAPITAL LETTER C WITH ACUTE*/
+  0x0107, /*U+0107*/ /**/
+  0x0109, /*U+0108*/ /*LATIN CAPITAL LETTER C WITH CIRCUMFLEX*/
+  0x0109, /*U+0109*/ /**/
+  0x010B, /*U+010A*/ /*LATIN CAPITAL LETTER C WITH DOT ABOVE*/
+  0x010B, /*U+010B*/ /**/
+  0x010D, /*U+010C*/ /*LATIN CAPITAL LETTER C WITH CARON*/
+  0x010D, /*U+010D*/ /**/
+  0x010F, /*U+010E*/ /*LATIN CAPITAL LETTER D WITH CARON*/
+  0x010F, /*U+010F*/ /**/
+  0x0111, /*U+0110*/ /*LATIN CAPITAL LETTER D WITH STROKE*/
+  0x0111, /*U+0111*/ /**/
+  0x0113, /*U+0112*/ /*LATIN CAPITAL LETTER E WITH MACRON*/
+  0x0113, /*U+0113*/ /**/
+  0x0115, /*U+0114*/ /*LATIN CAPITAL LETTER E WITH BREVE*/
+  0x0115, /*U+0115*/ /**/
+  0x0117, /*U+0116*/ /*LATIN CAPITAL LETTER E WITH DOT ABOVE*/
+  0x0117, /*U+0117*/ /**/
+  0x0119, /*U+0118*/ /*LATIN CAPITAL LETTER E WITH OGONEK*/
+  0x0119, /*U+0119*/ /**/
+  0x011B, /*U+011A*/ /*LATIN CAPITAL LETTER E WITH CARON*/
+  0x011B, /*U+011B*/ /**/
+  0x011D, /*U+011C*/ /*LATIN CAPITAL LETTER G WITH CIRCUMFLEX*/
+  0x011D, /*U+011D*/ /**/
+  0x011F, /*U+011E*/ /*LATIN CAPITAL LETTER G WITH BREVE*/
+  0x011F, /*U+011F*/ /**/
+  0x0121, /*U+0120*/ /*LATIN CAPITAL LETTER G WITH DOT ABOVE*/
+  0x0121, /*U+0121*/ /**/
+  0x0123, /*U+0122*/ /*LATIN CAPITAL LETTER G WITH CEDILLA*/
+  0x0123, /*U+0123*/ /**/
+  0x0125, /*U+0124*/ /*LATIN CAPITAL LETTER H WITH CIRCUMFLEX*/
+  0x0125, /*U+0125*/ /**/
+  0x0127, /*U+0126*/ /*LATIN CAPITAL LETTER H WITH STROKE*/
+  0x0127, /*U+0127*/ /**/
+  0x0129, /*U+0128*/ /*LATIN CAPITAL LETTER I WITH TILDE*/
+  0x0129, /*U+0129*/ /**/
+  0x012B, /*U+012A*/ /*LATIN CAPITAL LETTER I WITH MACRON*/
+  0x012B, /*U+012B*/ /**/
+  0x012D, /*U+012C*/ /*LATIN CAPITAL LETTER I WITH BREVE*/
+  0x012D, /*U+012D*/ /**/
+  0x012F, /*U+012E*/ /*LATIN CAPITAL LETTER I WITH OGONEK*/
+  0x012F, /*U+012F*/ /**/
+  0x0069, /*U+0130*/ /*LATIN CAPITAL LETTER I WITH DOT ABOVE*/
+  0x0131, /*U+0131*/ /**/
+  0x0133, /*U+0132*/ /*LATIN CAPITAL LIGATURE IJ*/
+  0x0133, /*U+0133*/ /**/
+  0x0135, /*U+0134*/ /*LATIN CAPITAL LETTER J WITH CIRCUMFLEX*/
+  0x0135, /*U+0135*/ /**/
+  0x0137, /*U+0136*/ /*LATIN CAPITAL LETTER K WITH CEDILLA*/
+  0x0137, /*U+0137*/ /**/
+  0x0138, /*U+0138*/ /**/
+  0x013A, /*U+0139*/ /*LATIN CAPITAL LETTER L WITH ACUTE*/
+  0x013A, /*U+013A*/ /**/
+  0x013C, /*U+013B*/ /*LATIN CAPITAL LETTER L WITH CEDILLA*/
+  0x013C, /*U+013C*/ /**/
+  0x013E, /*U+013D*/ /*LATIN CAPITAL LETTER L WITH CARON*/
+  0x013E, /*U+013E*/ /**/
+  0x0140, /*U+013F*/ /*LATIN CAPITAL LETTER L WITH MIDDLE DOT*/
+  0x0140, /*U+0140*/ /**/
+  0x0142, /*U+0141*/ /*LATIN CAPITAL LETTER L WITH STROKE*/
+  0x0142, /*U+0142*/ /**/
+  0x0144, /*U+0143*/ /*LATIN CAPITAL LETTER N WITH ACUTE*/
+  0x0144, /*U+0144*/ /**/
+  0x0146, /*U+0145*/ /*LATIN CAPITAL LETTER N WITH CEDILLA*/
+  0x0146, /*U+0146*/ /**/
+  0x0148, /*U+0147*/ /*LATIN CAPITAL LETTER N WITH CARON*/
+  0x0148, /*U+0148*/ /**/
+  0x0149, /*U+0149*/ /**/
+  0x014B, /*U+014A*/ /*LATIN CAPITAL LETTER ENG*/
+  0x014B, /*U+014B*/ /**/
+  0x014D, /*U+014C*/ /*LATIN CAPITAL LETTER O WITH MACRON*/
+  0x014D, /*U+014D*/ /**/
+  0x014F, /*U+014E*/ /*LATIN CAPITAL LETTER O WITH BREVE*/
+  0x014F, /*U+014F*/ /**/
+  0x0151, /*U+0150*/ /*LATIN CAPITAL LETTER O WITH DOUBLE ACUTE*/
+  0x0151, /*U+0151*/ /**/
+  0x0153, /*U+0152*/ /*LATIN CAPITAL LIGATURE OE*/
+  0x0153, /*U+0153*/ /**/
+  0x0155, /*U+0154*/ /*LATIN CAPITAL LETTER R WITH ACUTE*/
+  0x0155, /*U+0155*/ /**/
+  0x0157, /*U+0156*/ /*LATIN CAPITAL LETTER R WITH CEDILLA*/
+  0x0157, /*U+0157*/ /**/
+  0x0159, /*U+0158*/ /*LATIN CAPITAL LETTER R WITH CARON*/
+  0x0159, /*U+0159*/ /**/
+  0x015B, /*U+015A*/ /*LATIN CAPITAL LETTER S WITH ACUTE*/
+  0x015B, /*U+015B*/ /**/
+  0x015D, /*U+015C*/ /*LATIN CAPITAL LETTER S WITH CIRCUMFLEX*/
+  0x015D, /*U+015D*/ /**/
+  0x015F, /*U+015E*/ /*LATIN CAPITAL LETTER S WITH CEDILLA*/
+  0x015F, /*U+015F*/ /**/
+  0x0161, /*U+0160*/ /*LATIN CAPITAL LETTER S WITH CARON*/
+  0x0161, /*U+0161*/ /**/
+  0x0163, /*U+0162*/ /*LATIN CAPITAL LETTER T WITH CEDILLA*/
+  0x0163, /*U+0163*/ /**/
+  0x0165, /*U+0164*/ /*LATIN CAPITAL LETTER T WITH CARON*/
+  0x0165, /*U+0165*/ /**/
+  0x0167, /*U+0166*/ /*LATIN CAPITAL LETTER T WITH STROKE*/
+  0x0167, /*U+0167*/ /**/
+  0x0169, /*U+0168*/ /*LATIN CAPITAL LETTER U WITH TILDE*/
+  0x0169, /*U+0169*/ /**/
+  0x016B, /*U+016A*/ /*LATIN CAPITAL LETTER U WITH MACRON*/
+  0x016B, /*U+016B*/ /**/
+  0x016D, /*U+016C*/ /*LATIN CAPITAL LETTER U WITH BREVE*/
+  0x016D, /*U+016D*/ /**/
+  0x016F, /*U+016E*/ /*LATIN CAPITAL LETTER U WITH RING ABOVE*/
+  0x016F, /*U+016F*/ /**/
+  0x0171, /*U+0170*/ /*LATIN CAPITAL LETTER U WITH DOUBLE ACUTE*/
+  0x0171, /*U+0171*/ /**/
+  0x0173, /*U+0172*/ /*LATIN CAPITAL LETTER U WITH OGONEK*/
+  0x0173, /*U+0173*/ /**/
+  0x0175, /*U+0174*/ /*LATIN CAPITAL LETTER W WITH CIRCUMFLEX*/
+  0x0175, /*U+0175*/ /**/
+  0x0177, /*U+0176*/ /*LATIN CAPITAL LETTER Y WITH CIRCUMFLEX*/
+  0x0177, /*U+0177*/ /**/
+  0x00FF, /*U+0178*/ /*LATIN CAPITAL LETTER Y WITH DIAERESIS*/
+  0x017A, /*U+0179*/ /*LATIN CAPITAL LETTER Z WITH ACUTE*/
+  0x017A, /*U+017A*/ /**/
+  0x017C, /*U+017B*/ /*LATIN CAPITAL LETTER Z WITH DOT ABOVE*/
+  0x017C, /*U+017C*/ /**/
+  0x017E, /*U+017D*/ /*LATIN CAPITAL LETTER Z WITH CARON*/
+  0x017E, /*U+017E*/ /**/
+  0x017F, /*U+017F*/ /**/
+  0x0180, /*U+0180*/ /**/
+  0x0253, /*U+0181*/ /*LATIN CAPITAL LETTER B WITH HOOK*/
+  0x0183, /*U+0182*/ /*LATIN CAPITAL LETTER B WITH TOPBAR*/
+  0x0183, /*U+0183*/ /**/
+  0x0185, /*U+0184*/ /*LATIN CAPITAL LETTER TONE SIX*/
+  0x0185, /*U+0185*/ /**/
+  0x0254, /*U+0186*/ /*LATIN CAPITAL LETTER OPEN O*/
+  0x0188, /*U+0187*/ /*LATIN CAPITAL LETTER C WITH HOOK*/
+  0x0188, /*U+0188*/ /**/
+  0x0256, /*U+0189*/ /*LATIN CAPITAL LETTER AFRICAN D*/
+  0x0257, /*U+018A*/ /*LATIN CAPITAL LETTER D WITH HOOK*/
+  0x018C, /*U+018B*/ /*LATIN CAPITAL LETTER D WITH TOPBAR*/
+  0x018C, /*U+018C*/ /**/
+  0x018D, /*U+018D*/ /**/
+  0x01DD, /*U+018E*/ /*LATIN CAPITAL LETTER REVERSED E*/
+  0x0259, /*U+018F*/ /*LATIN CAPITAL LETTER SCHWA*/
+  0x025B, /*U+0190*/ /*LATIN CAPITAL LETTER OPEN E*/
+  0x0192, /*U+0191*/ /*LATIN CAPITAL LETTER F WITH HOOK*/
+  0x0192, /*U+0192*/ /**/
+  0x0260, /*U+0193*/ /*LATIN CAPITAL LETTER G WITH HOOK*/
+  0x0263, /*U+0194*/ /*LATIN CAPITAL LETTER GAMMA*/
+  0x0195, /*U+0195*/ /**/
+  0x0269, /*U+0196*/ /*LATIN CAPITAL LETTER IOTA*/
+  0x0268, /*U+0197*/ /*LATIN CAPITAL LETTER I WITH STROKE*/
+  0x0199, /*U+0198*/ /*LATIN CAPITAL LETTER K WITH HOOK*/
+  0x0199, /*U+0199*/ /**/
+  0x019A, /*U+019A*/ /**/
+  0x019B, /*U+019B*/ /**/
+  0x026F, /*U+019C*/ /*LATIN CAPITAL LETTER TURNED M*/
+  0x0272, /*U+019D*/ /*LATIN CAPITAL LETTER N WITH LEFT HOOK*/
+  0x019E, /*U+019E*/ /**/
+  0x0275, /*U+019F*/ /*LATIN CAPITAL LETTER O WITH MIDDLE TILDE*/
+  0x01A1, /*U+01A0*/ /*LATIN CAPITAL LETTER O WITH HORN*/
+  0x01A1, /*U+01A1*/ /**/
+  0x01A3, /*U+01A2*/ /*LATIN CAPITAL LETTER OI*/
+  0x01A3, /*U+01A3*/ /**/
+  0x01A5, /*U+01A4*/ /*LATIN CAPITAL LETTER P WITH HOOK*/
+  0x01A5, /*U+01A5*/ /**/
+  0x0280, /*U+01A6*/ /*LATIN LETTER YR*/
+  0x01A8, /*U+01A7*/ /*LATIN CAPITAL LETTER TONE TWO*/
+  0x01A8, /*U+01A8*/ /**/
+  0x0283, /*U+01A9*/ /*LATIN CAPITAL LETTER ESH*/
+  0x01AA, /*U+01AA*/ /**/
+  0x01AB, /*U+01AB*/ /**/
+  0x01AD, /*U+01AC*/ /*LATIN CAPITAL LETTER T WITH HOOK*/
+  0x01AD, /*U+01AD*/ /**/
+  0x0288, /*U+01AE*/ /*LATIN CAPITAL LETTER T WITH RETROFLEX HOOK*/
+  0x01B0, /*U+01AF*/ /*LATIN CAPITAL LETTER U WITH HORN*/
+  0x01B0, /*U+01B0*/ /**/
+  0x028A, /*U+01B1*/ /*LATIN CAPITAL LETTER UPSILON*/
+  0x028B, /*U+01B2*/ /*LATIN CAPITAL LETTER V WITH HOOK*/
+  0x01B4, /*U+01B3*/ /*LATIN CAPITAL LETTER Y WITH HOOK*/
+  0x01B4, /*U+01B4*/ /**/
+  0x01B6, /*U+01B5*/ /*LATIN CAPITAL LETTER Z WITH STROKE*/
+  0x01B6, /*U+01B6*/ /**/
+  0x0292, /*U+01B7*/ /*LATIN CAPITAL LETTER EZH*/
+  0x01B9, /*U+01B8*/ /*LATIN CAPITAL LETTER EZH REVERSED*/
+  0x01B9, /*U+01B9*/ /**/
+  0x01BA, /*U+01BA*/ /**/
+  0x01BB, /*U+01BB*/ /**/
+  0x01BD, /*U+01BC*/ /*LATIN CAPITAL LETTER TONE FIVE*/
+  0x01BD, /*U+01BD*/ /**/
+  0x01BE, /*U+01BE*/ /**/
+  0x01BF, /*U+01BF*/ /**/
+  0x01C0, /*U+01C0*/ /**/
+  0x01C1, /*U+01C1*/ /**/
+  0x01C2, /*U+01C2*/ /**/
+  0x01C3, /*U+01C3*/ /**/
+  0x01C6, /*U+01C4*/ /*LATIN CAPITAL LETTER DZ WITH CARON*/
+  0x01C6, /*U+01C5*/ /*LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON*/
+  0x01C6, /*U+01C6*/ /**/
+  0x01C9, /*U+01C7*/ /*LATIN CAPITAL LETTER LJ*/
+  0x01C9, /*U+01C8*/ /*LATIN CAPITAL LETTER L WITH SMALL LETTER J*/
+  0x01C9, /*U+01C9*/ /**/
+  0x01CC, /*U+01CA*/ /*LATIN CAPITAL LETTER NJ*/
+  0x01CC, /*U+01CB*/ /*LATIN CAPITAL LETTER N WITH SMALL LETTER J*/
+  0x01CC, /*U+01CC*/ /**/
+  0x01CE, /*U+01CD*/ /*LATIN CAPITAL LETTER A WITH CARON*/
+  0x01CE, /*U+01CE*/ /**/
+  0x01D0, /*U+01CF*/ /*LATIN CAPITAL LETTER I WITH CARON*/
+  0x01D0, /*U+01D0*/ /**/
+  0x01D2, /*U+01D1*/ /*LATIN CAPITAL LETTER O WITH CARON*/
+  0x01D2, /*U+01D2*/ /**/
+  0x01D4, /*U+01D3*/ /*LATIN CAPITAL LETTER U WITH CARON*/
+  0x01D4, /*U+01D4*/ /**/
+  0x01D6, /*U+01D5*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON*/
+  0x01D6, /*U+01D6*/ /**/
+  0x01D8, /*U+01D7*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE*/
+  0x01D8, /*U+01D8*/ /**/
+  0x01DA, /*U+01D9*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON*/
+  0x01DA, /*U+01DA*/ /**/
+  0x01DC, /*U+01DB*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE*/
+  0x01DC, /*U+01DC*/ /**/
+  0x01DD, /*U+01DD*/ /**/
+  0x01DF, /*U+01DE*/ /*LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON*/
+  0x01DF, /*U+01DF*/ /**/
+  0x01E1, /*U+01E0*/ /*LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON*/
+  0x01E1, /*U+01E1*/ /**/
+  0x01E3, /*U+01E2*/ /*LATIN CAPITAL LETTER AE WITH MACRON*/
+  0x01E3, /*U+01E3*/ /**/
+  0x01E5, /*U+01E4*/ /*LATIN CAPITAL LETTER G WITH STROKE*/
+  0x01E5, /*U+01E5*/ /**/
+  0x01E7, /*U+01E6*/ /*LATIN CAPITAL LETTER G WITH CARON*/
+  0x01E7, /*U+01E7*/ /**/
+  0x01E9, /*U+01E8*/ /*LATIN CAPITAL LETTER K WITH CARON*/
+  0x01E9, /*U+01E9*/ /**/
+  0x01EB, /*U+01EA*/ /*LATIN CAPITAL LETTER O WITH OGONEK*/
+  0x01EB, /*U+01EB*/ /**/
+  0x01ED, /*U+01EC*/ /*LATIN CAPITAL LETTER O WITH OGONEK AND MACRON*/
+  0x01ED, /*U+01ED*/ /**/
+  0x01EF, /*U+01EE*/ /*LATIN CAPITAL LETTER EZH WITH CARON*/
+  0x01EF, /*U+01EF*/ /**/
+  0x01F0, /*U+01F0*/ /**/
+  0x01F3, /*U+01F1*/ /*LATIN CAPITAL LETTER DZ*/
+  0x01F3, /*U+01F2*/ /*LATIN CAPITAL LETTER D WITH SMALL LETTER Z*/
+  0x01F3, /*U+01F3*/ /**/
+  0x01F5, /*U+01F4*/ /*LATIN CAPITAL LETTER G WITH ACUTE*/
+  0x01F5, /*U+01F5*/ /**/
+  0x0195, /*U+01F6*/ /*LATIN CAPITAL LETTER HWAIR*/
+  0x01BF, /*U+01F7*/ /*LATIN CAPITAL LETTER WYNN*/
+  0x01F9, /*U+01F8*/ /*LATIN CAPITAL LETTER N WITH GRAVE*/
+  0x01F9, /*U+01F9*/ /**/
+  0x01FB, /*U+01FA*/ /*LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE*/
+  0x01FB, /*U+01FB*/ /**/
+  0x01FD, /*U+01FC*/ /*LATIN CAPITAL LETTER AE WITH ACUTE*/
+  0x01FD, /*U+01FD*/ /**/
+  0x01FF, /*U+01FE*/ /*LATIN CAPITAL LETTER O WITH STROKE AND ACUTE*/
+  0x01FF, /*U+01FF*/ /**/
+  0x0201, /*U+0200*/ /*LATIN CAPITAL LETTER A WITH DOUBLE GRAVE*/
+  0x0201, /*U+0201*/ /**/
+  0x0203, /*U+0202*/ /*LATIN CAPITAL LETTER A WITH INVERTED BREVE*/
+  0x0203, /*U+0203*/ /**/
+  0x0205, /*U+0204*/ /*LATIN CAPITAL LETTER E WITH DOUBLE GRAVE*/
+  0x0205, /*U+0205*/ /**/
+  0x0207, /*U+0206*/ /*LATIN CAPITAL LETTER E WITH INVERTED BREVE*/
+  0x0207, /*U+0207*/ /**/
+  0x0209, /*U+0208*/ /*LATIN CAPITAL LETTER I WITH DOUBLE GRAVE*/
+  0x0209, /*U+0209*/ /**/
+  0x020B, /*U+020A*/ /*LATIN CAPITAL LETTER I WITH INVERTED BREVE*/
+  0x020B, /*U+020B*/ /**/
+  0x020D, /*U+020C*/ /*LATIN CAPITAL LETTER O WITH DOUBLE GRAVE*/
+  0x020D, /*U+020D*/ /**/
+  0x020F, /*U+020E*/ /*LATIN CAPITAL LETTER O WITH INVERTED BREVE*/
+  0x020F, /*U+020F*/ /**/
+  0x0211, /*U+0210*/ /*LATIN CAPITAL LETTER R WITH DOUBLE GRAVE*/
+  0x0211, /*U+0211*/ /**/
+  0x0213, /*U+0212*/ /*LATIN CAPITAL LETTER R WITH INVERTED BREVE*/
+  0x0213, /*U+0213*/ /**/
+  0x0215, /*U+0214*/ /*LATIN CAPITAL LETTER U WITH DOUBLE GRAVE*/
+  0x0215, /*U+0215*/ /**/
+  0x0217, /*U+0216*/ /*LATIN CAPITAL LETTER U WITH INVERTED BREVE*/
+  0x0217, /*U+0217*/ /**/
+  0x0219, /*U+0218*/ /*LATIN CAPITAL LETTER S WITH COMMA BELOW*/
+  0x0219, /*U+0219*/ /**/
+  0x021B, /*U+021A*/ /*LATIN CAPITAL LETTER T WITH COMMA BELOW*/
+  0x021B, /*U+021B*/ /**/
+  0x021D, /*U+021C*/ /*LATIN CAPITAL LETTER YOGH*/
+  0x021D, /*U+021D*/ /**/
+  0x021F, /*U+021E*/ /*LATIN CAPITAL LETTER H WITH CARON*/
+  0x021F, /*U+021F*/ /**/
+  0x019E, /*U+0220*/ /*LATIN CAPITAL LETTER N WITH LONG RIGHT LEG*/
+  0x0221, /*U+0221*/ /**/
+  0x0223, /*U+0222*/ /*LATIN CAPITAL LETTER OU*/
+  0x0223, /*U+0223*/ /**/
+  0x0225, /*U+0224*/ /*LATIN CAPITAL LETTER Z WITH HOOK*/
+  0x0225, /*U+0225*/ /**/
+  0x0227, /*U+0226*/ /*LATIN CAPITAL LETTER A WITH DOT ABOVE*/
+  0x0227, /*U+0227*/ /**/
+  0x0229, /*U+0228*/ /*LATIN CAPITAL LETTER E WITH CEDILLA*/
+  0x0229, /*U+0229*/ /**/
+  0x022B, /*U+022A*/ /*LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON*/
+  0x022B, /*U+022B*/ /**/
+  0x022D, /*U+022C*/ /*LATIN CAPITAL LETTER O WITH TILDE AND MACRON*/
+  0x022D, /*U+022D*/ /**/
+  0x022F, /*U+022E*/ /*LATIN CAPITAL LETTER O WITH DOT ABOVE*/
+  0x022F, /*U+022F*/ /**/
+  0x0231, /*U+0230*/ /*LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON*/
+  0x0231, /*U+0231*/ /**/
+  0x0233, /*U+0232*/ /*LATIN CAPITAL LETTER Y WITH MACRON*/
+  0x0233, /*U+0233*/ /**/
+  0x0234, /*U+0234*/ /**/
+  0x0235, /*U+0235*/ /**/
+  0x0236, /*U+0236*/ /**/
+  0x0237, /*U+0237*/ /**/
+  0x0238, /*U+0238*/ /**/
+  0x0239, /*U+0239*/ /**/
+  0x2C65, /*U+023A*/ /*LATIN CAPITAL LETTER A WITH STROKE*/
+  0x023C, /*U+023B*/ /*LATIN CAPITAL LETTER C WITH STROKE*/
+  0x023C, /*U+023C*/ /**/
+  0x019A, /*U+023D*/ /*LATIN CAPITAL LETTER L WITH BAR*/
+  0x2C66, /*U+023E*/ /*LATIN CAPITAL LETTER T WITH DIAGONAL STROKE*/
+  0x023F, /*U+023F*/ /**/
+  0x0240, /*U+0240*/ /**/
+  0x0242, /*U+0241*/ /*LATIN CAPITAL LETTER GLOTTAL STOP*/
+  0x0242, /*U+0242*/ /**/
+  0x0180, /*U+0243*/ /*LATIN CAPITAL LETTER B WITH STROKE*/
+  0x0289, /*U+0244*/ /*LATIN CAPITAL LETTER U BAR*/
+  0x028C, /*U+0245*/ /*LATIN CAPITAL LETTER TURNED V*/
+  0x0247, /*U+0246*/ /*LATIN CAPITAL LETTER E WITH STROKE*/
+  0x0247, /*U+0247*/ /**/
+  0x0249, /*U+0248*/ /*LATIN CAPITAL LETTER J WITH STROKE*/
+  0x0249, /*U+0249*/ /**/
+  0x024B, /*U+024A*/ /*LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL*/
+  0x024B, /*U+024B*/ /**/
+  0x024D, /*U+024C*/ /*LATIN CAPITAL LETTER R WITH STROKE*/
+  0x024D, /*U+024D*/ /**/
+  0x024F, /*U+024E*/ /*LATIN CAPITAL LETTER Y WITH STROKE*/
+  0x024F, /*U+024F*/ /**/
+  0x0250, /*U+0250*/ /**/
+  0x0251, /*U+0251*/ /**/
+  0x0252, /*U+0252*/ /**/
+  0x0253, /*U+0253*/ /**/
+  0x0254, /*U+0254*/ /**/
+  0x0255, /*U+0255*/ /**/
+  0x0256, /*U+0256*/ /**/
+  0x0257, /*U+0257*/ /**/
+  0x0258, /*U+0258*/ /**/
+  0x0259, /*U+0259*/ /**/
+  0x025A, /*U+025A*/ /**/
+  0x025B, /*U+025B*/ /**/
+  0x025C, /*U+025C*/ /**/
+  0x025D, /*U+025D*/ /**/
+  0x025E, /*U+025E*/ /**/
+  0x025F, /*U+025F*/ /**/
+  0x0260, /*U+0260*/ /**/
+  0x0261, /*U+0261*/ /**/
+  0x0262, /*U+0262*/ /**/
+  0x0263, /*U+0263*/ /**/
+  0x0264, /*U+0264*/ /**/
+  0x0265, /*U+0265*/ /**/
+  0x0266, /*U+0266*/ /**/
+  0x0267, /*U+0267*/ /**/
+  0x0268, /*U+0268*/ /**/
+  0x0269, /*U+0269*/ /**/
+  0x026A, /*U+026A*/ /**/
+  0x026B, /*U+026B*/ /**/
+  0x026C, /*U+026C*/ /**/
+  0x026D, /*U+026D*/ /**/
+  0x026E, /*U+026E*/ /**/
+  0x026F, /*U+026F*/ /**/
+  0x0270, /*U+0270*/ /**/
+  0x0271, /*U+0271*/ /**/
+  0x0272, /*U+0272*/ /**/
+  0x0273, /*U+0273*/ /**/
+  0x0274, /*U+0274*/ /**/
+  0x0275, /*U+0275*/ /**/
+  0x0276, /*U+0276*/ /**/
+  0x0277, /*U+0277*/ /**/
+  0x0278, /*U+0278*/ /**/
+  0x0279, /*U+0279*/ /**/
+  0x027A, /*U+027A*/ /**/
+  0x027B, /*U+027B*/ /**/
+  0x027C, /*U+027C*/ /**/
+  0x027D, /*U+027D*/ /**/
+  0x027E, /*U+027E*/ /**/
+  0x027F, /*U+027F*/ /**/
+};
+
+static const u_int16_t lower_table_3[576] = {
+  0x0340, /*U+0340*/ /**/
+  0x0341, /*U+0341*/ /**/
+  0x0342, /*U+0342*/ /**/
+  0x0343, /*U+0343*/ /**/
+  0x0344, /*U+0344*/ /**/
+  0x0345, /*U+0345*/ /**/
+  0x0346, /*U+0346*/ /**/
+  0x0347, /*U+0347*/ /**/
+  0x0348, /*U+0348*/ /**/
+  0x0349, /*U+0349*/ /**/
+  0x034A, /*U+034A*/ /**/
+  0x034B, /*U+034B*/ /**/
+  0x034C, /*U+034C*/ /**/
+  0x034D, /*U+034D*/ /**/
+  0x034E, /*U+034E*/ /**/
+  0x034F, /*U+034F*/ /**/
+  0x0350, /*U+0350*/ /**/
+  0x0351, /*U+0351*/ /**/
+  0x0352, /*U+0352*/ /**/
+  0x0353, /*U+0353*/ /**/
+  0x0354, /*U+0354*/ /**/
+  0x0355, /*U+0355*/ /**/
+  0x0356, /*U+0356*/ /**/
+  0x0357, /*U+0357*/ /**/
+  0x0358, /*U+0358*/ /**/
+  0x0359, /*U+0359*/ /**/
+  0x035A, /*U+035A*/ /**/
+  0x035B, /*U+035B*/ /**/
+  0x035C, /*U+035C*/ /**/
+  0x035D, /*U+035D*/ /**/
+  0x035E, /*U+035E*/ /**/
+  0x035F, /*U+035F*/ /**/
+  0x0360, /*U+0360*/ /**/
+  0x0361, /*U+0361*/ /**/
+  0x0362, /*U+0362*/ /**/
+  0x0363, /*U+0363*/ /**/
+  0x0364, /*U+0364*/ /**/
+  0x0365, /*U+0365*/ /**/
+  0x0366, /*U+0366*/ /**/
+  0x0367, /*U+0367*/ /**/
+  0x0368, /*U+0368*/ /**/
+  0x0369, /*U+0369*/ /**/
+  0x036A, /*U+036A*/ /**/
+  0x036B, /*U+036B*/ /**/
+  0x036C, /*U+036C*/ /**/
+  0x036D, /*U+036D*/ /**/
+  0x036E, /*U+036E*/ /**/
+  0x036F, /*U+036F*/ /**/
+  0x0371, /*U+0370*/ /*GREEK CAPITAL LETTER HETA*/
+  0x0371, /*U+0371*/ /**/
+  0x0373, /*U+0372*/ /*GREEK CAPITAL LETTER ARCHAIC SAMPI*/
+  0x0373, /*U+0373*/ /**/
+  0x0374, /*U+0374*/ /**/
+  0x0375, /*U+0375*/ /**/
+  0x0377, /*U+0376*/ /*GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA*/
+  0x0377, /*U+0377*/ /**/
+  0x0378, /*U+0378*/ /**/
+  0x0379, /*U+0379*/ /**/
+  0x037A, /*U+037A*/ /**/
+  0x037B, /*U+037B*/ /**/
+  0x037C, /*U+037C*/ /**/
+  0x037D, /*U+037D*/ /**/
+  0x037E, /*U+037E*/ /**/
+  0x037F, /*U+037F*/ /**/
+  0x0380, /*U+0380*/ /**/
+  0x0381, /*U+0381*/ /**/
+  0x0382, /*U+0382*/ /**/
+  0x0383, /*U+0383*/ /**/
+  0x0384, /*U+0384*/ /**/
+  0x0385, /*U+0385*/ /**/
+  0x03AC, /*U+0386*/ /*GREEK CAPITAL LETTER ALPHA WITH TONOS*/
+  0x0387, /*U+0387*/ /**/
+  0x03AD, /*U+0388*/ /*GREEK CAPITAL LETTER EPSILON WITH TONOS*/
+  0x03AE, /*U+0389*/ /*GREEK CAPITAL LETTER ETA WITH TONOS*/
+  0x03AF, /*U+038A*/ /*GREEK CAPITAL LETTER IOTA WITH TONOS*/
+  0x038B, /*U+038B*/ /**/
+  0x03CC, /*U+038C*/ /*GREEK CAPITAL LETTER OMICRON WITH TONOS*/
+  0x038D, /*U+038D*/ /**/
+  0x03CD, /*U+038E*/ /*GREEK CAPITAL LETTER UPSILON WITH TONOS*/
+  0x03CE, /*U+038F*/ /*GREEK CAPITAL LETTER OMEGA WITH TONOS*/
+  0x0390, /*U+0390*/ /**/
+  0x03B1, /*U+0391*/ /*GREEK CAPITAL LETTER ALPHA*/
+  0x03B2, /*U+0392*/ /*GREEK CAPITAL LETTER BETA*/
+  0x03B3, /*U+0393*/ /*GREEK CAPITAL LETTER GAMMA*/
+  0x03B4, /*U+0394*/ /*GREEK CAPITAL LETTER DELTA*/
+  0x03B5, /*U+0395*/ /*GREEK CAPITAL LETTER EPSILON*/
+  0x03B6, /*U+0396*/ /*GREEK CAPITAL LETTER ZETA*/
+  0x03B7, /*U+0397*/ /*GREEK CAPITAL LETTER ETA*/
+  0x03B8, /*U+0398*/ /*GREEK CAPITAL LETTER THETA*/
+  0x03B9, /*U+0399*/ /*GREEK CAPITAL LETTER IOTA*/
+  0x03BA, /*U+039A*/ /*GREEK CAPITAL LETTER KAPPA*/
+  0x03BB, /*U+039B*/ /*GREEK CAPITAL LETTER LAMDA*/
+  0x03BC, /*U+039C*/ /*GREEK CAPITAL LETTER MU*/
+  0x03BD, /*U+039D*/ /*GREEK CAPITAL LETTER NU*/
+  0x03BE, /*U+039E*/ /*GREEK CAPITAL LETTER XI*/
+  0x03BF, /*U+039F*/ /*GREEK CAPITAL LETTER OMICRON*/
+  0x03C0, /*U+03A0*/ /*GREEK CAPITAL LETTER PI*/
+  0x03C1, /*U+03A1*/ /*GREEK CAPITAL LETTER RHO*/
+  0x03A2, /*U+03A2*/ /**/
+  0x03C3, /*U+03A3*/ /*GREEK CAPITAL LETTER SIGMA*/
+  0x03C4, /*U+03A4*/ /*GREEK CAPITAL LETTER TAU*/
+  0x03C5, /*U+03A5*/ /*GREEK CAPITAL LETTER UPSILON*/
+  0x03C6, /*U+03A6*/ /*GREEK CAPITAL LETTER PHI*/
+  0x03C7, /*U+03A7*/ /*GREEK CAPITAL LETTER CHI*/
+  0x03C8, /*U+03A8*/ /*GREEK CAPITAL LETTER PSI*/
+  0x03C9, /*U+03A9*/ /*GREEK CAPITAL LETTER OMEGA*/
+  0x03CA, /*U+03AA*/ /*GREEK CAPITAL LETTER IOTA WITH DIALYTIKA*/
+  0x03CB, /*U+03AB*/ /*GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA*/
+  0x03AC, /*U+03AC*/ /**/
+  0x03AD, /*U+03AD*/ /**/
+  0x03AE, /*U+03AE*/ /**/
+  0x03AF, /*U+03AF*/ /**/
+  0x03B0, /*U+03B0*/ /**/
+  0x03B1, /*U+03B1*/ /**/
+  0x03B2, /*U+03B2*/ /**/
+  0x03B3, /*U+03B3*/ /**/
+  0x03B4, /*U+03B4*/ /**/
+  0x03B5, /*U+03B5*/ /**/
+  0x03B6, /*U+03B6*/ /**/
+  0x03B7, /*U+03B7*/ /**/
+  0x03B8, /*U+03B8*/ /**/
+  0x03B9, /*U+03B9*/ /**/
+  0x03BA, /*U+03BA*/ /**/
+  0x03BB, /*U+03BB*/ /**/
+  0x03BC, /*U+03BC*/ /**/
+  0x03BD, /*U+03BD*/ /**/
+  0x03BE, /*U+03BE*/ /**/
+  0x03BF, /*U+03BF*/ /**/
+  0x03C0, /*U+03C0*/ /**/
+  0x03C1, /*U+03C1*/ /**/
+  0x03C2, /*U+03C2*/ /**/
+  0x03C3, /*U+03C3*/ /**/
+  0x03C4, /*U+03C4*/ /**/
+  0x03C5, /*U+03C5*/ /**/
+  0x03C6, /*U+03C6*/ /**/
+  0x03C7, /*U+03C7*/ /**/
+  0x03C8, /*U+03C8*/ /**/
+  0x03C9, /*U+03C9*/ /**/
+  0x03CA, /*U+03CA*/ /**/
+  0x03CB, /*U+03CB*/ /**/
+  0x03CC, /*U+03CC*/ /**/
+  0x03CD, /*U+03CD*/ /**/
+  0x03CE, /*U+03CE*/ /**/
+  0x03D7, /*U+03CF*/ /*GREEK CAPITAL KAI SYMBOL*/
+  0x03D0, /*U+03D0*/ /**/
+  0x03D1, /*U+03D1*/ /**/
+  0x03D2, /*U+03D2*/ /**/
+  0x03D3, /*U+03D3*/ /**/
+  0x03D4, /*U+03D4*/ /**/
+  0x03D5, /*U+03D5*/ /**/
+  0x03D6, /*U+03D6*/ /**/
+  0x03D7, /*U+03D7*/ /**/
+  0x03D9, /*U+03D8*/ /*GREEK LETTER ARCHAIC KOPPA*/
+  0x03D9, /*U+03D9*/ /**/
+  0x03DB, /*U+03DA*/ /*GREEK LETTER STIGMA*/
+  0x03DB, /*U+03DB*/ /**/
+  0x03DD, /*U+03DC*/ /*GREEK LETTER DIGAMMA*/
+  0x03DD, /*U+03DD*/ /**/
+  0x03DF, /*U+03DE*/ /*GREEK LETTER KOPPA*/
+  0x03DF, /*U+03DF*/ /**/
+  0x03E1, /*U+03E0*/ /*GREEK LETTER SAMPI*/
+  0x03E1, /*U+03E1*/ /**/
+  0x03E3, /*U+03E2*/ /*COPTIC CAPITAL LETTER SHEI*/
+  0x03E3, /*U+03E3*/ /**/
+  0x03E5, /*U+03E4*/ /*COPTIC CAPITAL LETTER FEI*/
+  0x03E5, /*U+03E5*/ /**/
+  0x03E7, /*U+03E6*/ /*COPTIC CAPITAL LETTER KHEI*/
+  0x03E7, /*U+03E7*/ /**/
+  0x03E9, /*U+03E8*/ /*COPTIC CAPITAL LETTER HORI*/
+  0x03E9, /*U+03E9*/ /**/
+  0x03EB, /*U+03EA*/ /*COPTIC CAPITAL LETTER GANGIA*/
+  0x03EB, /*U+03EB*/ /**/
+  0x03ED, /*U+03EC*/ /*COPTIC CAPITAL LETTER SHIMA*/
+  0x03ED, /*U+03ED*/ /**/
+  0x03EF, /*U+03EE*/ /*COPTIC CAPITAL LETTER DEI*/
+  0x03EF, /*U+03EF*/ /**/
+  0x03F0, /*U+03F0*/ /**/
+  0x03F1, /*U+03F1*/ /**/
+  0x03F2, /*U+03F2*/ /**/
+  0x03F3, /*U+03F3*/ /**/
+  0x03B8, /*U+03F4*/ /*GREEK CAPITAL THETA SYMBOL*/
+  0x03F5, /*U+03F5*/ /**/
+  0x03F6, /*U+03F6*/ /**/
+  0x03F8, /*U+03F7*/ /*GREEK CAPITAL LETTER SHO*/
+  0x03F8, /*U+03F8*/ /**/
+  0x03F2, /*U+03F9*/ /*GREEK CAPITAL LUNATE SIGMA SYMBOL*/
+  0x03FB, /*U+03FA*/ /*GREEK CAPITAL LETTER SAN*/
+  0x03FB, /*U+03FB*/ /**/
+  0x03FC, /*U+03FC*/ /**/
+  0x037B, /*U+03FD*/ /*GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL*/
+  0x037C, /*U+03FE*/ /*GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL*/
+  0x037D, /*U+03FF*/ /*GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL*/
+  0x0450, /*U+0400*/ /*CYRILLIC CAPITAL LETTER IE WITH GRAVE*/
+  0x0451, /*U+0401*/ /*CYRILLIC CAPITAL LETTER IO*/
+  0x0452, /*U+0402*/ /*CYRILLIC CAPITAL LETTER DJE*/
+  0x0453, /*U+0403*/ /*CYRILLIC CAPITAL LETTER GJE*/
+  0x0454, /*U+0404*/ /*CYRILLIC CAPITAL LETTER UKRAINIAN IE*/
+  0x0455, /*U+0405*/ /*CYRILLIC CAPITAL LETTER DZE*/
+  0x0456, /*U+0406*/ /*CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I*/
+  0x0457, /*U+0407*/ /*CYRILLIC CAPITAL LETTER YI*/
+  0x0458, /*U+0408*/ /*CYRILLIC CAPITAL LETTER JE*/
+  0x0459, /*U+0409*/ /*CYRILLIC CAPITAL LETTER LJE*/
+  0x045A, /*U+040A*/ /*CYRILLIC CAPITAL LETTER NJE*/
+  0x045B, /*U+040B*/ /*CYRILLIC CAPITAL LETTER TSHE*/
+  0x045C, /*U+040C*/ /*CYRILLIC CAPITAL LETTER KJE*/
+  0x045D, /*U+040D*/ /*CYRILLIC CAPITAL LETTER I WITH GRAVE*/
+  0x045E, /*U+040E*/ /*CYRILLIC CAPITAL LETTER SHORT U*/
+  0x045F, /*U+040F*/ /*CYRILLIC CAPITAL LETTER DZHE*/
+  0x0430, /*U+0410*/ /*CYRILLIC CAPITAL LETTER A*/
+  0x0431, /*U+0411*/ /*CYRILLIC CAPITAL LETTER BE*/
+  0x0432, /*U+0412*/ /*CYRILLIC CAPITAL LETTER VE*/
+  0x0433, /*U+0413*/ /*CYRILLIC CAPITAL LETTER GHE*/
+  0x0434, /*U+0414*/ /*CYRILLIC CAPITAL LETTER DE*/
+  0x0435, /*U+0415*/ /*CYRILLIC CAPITAL LETTER IE*/
+  0x0436, /*U+0416*/ /*CYRILLIC CAPITAL LETTER ZHE*/
+  0x0437, /*U+0417*/ /*CYRILLIC CAPITAL LETTER ZE*/
+  0x0438, /*U+0418*/ /*CYRILLIC CAPITAL LETTER I*/
+  0x0439, /*U+0419*/ /*CYRILLIC CAPITAL LETTER SHORT I*/
+  0x043A, /*U+041A*/ /*CYRILLIC CAPITAL LETTER KA*/
+  0x043B, /*U+041B*/ /*CYRILLIC CAPITAL LETTER EL*/
+  0x043C, /*U+041C*/ /*CYRILLIC CAPITAL LETTER EM*/
+  0x043D, /*U+041D*/ /*CYRILLIC CAPITAL LETTER EN*/
+  0x043E, /*U+041E*/ /*CYRILLIC CAPITAL LETTER O*/
+  0x043F, /*U+041F*/ /*CYRILLIC CAPITAL LETTER PE*/
+  0x0440, /*U+0420*/ /*CYRILLIC CAPITAL LETTER ER*/
+  0x0441, /*U+0421*/ /*CYRILLIC CAPITAL LETTER ES*/
+  0x0442, /*U+0422*/ /*CYRILLIC CAPITAL LETTER TE*/
+  0x0443, /*U+0423*/ /*CYRILLIC CAPITAL LETTER U*/
+  0x0444, /*U+0424*/ /*CYRILLIC CAPITAL LETTER EF*/
+  0x0445, /*U+0425*/ /*CYRILLIC CAPITAL LETTER HA*/
+  0x0446, /*U+0426*/ /*CYRILLIC CAPITAL LETTER TSE*/
+  0x0447, /*U+0427*/ /*CYRILLIC CAPITAL LETTER CHE*/
+  0x0448, /*U+0428*/ /*CYRILLIC CAPITAL LETTER SHA*/
+  0x0449, /*U+0429*/ /*CYRILLIC CAPITAL LETTER SHCHA*/
+  0x044A, /*U+042A*/ /*CYRILLIC CAPITAL LETTER HARD SIGN*/
+  0x044B, /*U+042B*/ /*CYRILLIC CAPITAL LETTER YERU*/
+  0x044C, /*U+042C*/ /*CYRILLIC CAPITAL LETTER SOFT SIGN*/
+  0x044D, /*U+042D*/ /*CYRILLIC CAPITAL LETTER E*/
+  0x044E, /*U+042E*/ /*CYRILLIC CAPITAL LETTER YU*/
+  0x044F, /*U+042F*/ /*CYRILLIC CAPITAL LETTER YA*/
+  0x0430, /*U+0430*/ /**/
+  0x0431, /*U+0431*/ /**/
+  0x0432, /*U+0432*/ /**/
+  0x0433, /*U+0433*/ /**/
+  0x0434, /*U+0434*/ /**/
+  0x0435, /*U+0435*/ /**/
+  0x0436, /*U+0436*/ /**/
+  0x0437, /*U+0437*/ /**/
+  0x0438, /*U+0438*/ /**/
+  0x0439, /*U+0439*/ /**/
+  0x043A, /*U+043A*/ /**/
+  0x043B, /*U+043B*/ /**/
+  0x043C, /*U+043C*/ /**/
+  0x043D, /*U+043D*/ /**/
+  0x043E, /*U+043E*/ /**/
+  0x043F, /*U+043F*/ /**/
+  0x0440, /*U+0440*/ /**/
+  0x0441, /*U+0441*/ /**/
+  0x0442, /*U+0442*/ /**/
+  0x0443, /*U+0443*/ /**/
+  0x0444, /*U+0444*/ /**/
+  0x0445, /*U+0445*/ /**/
+  0x0446, /*U+0446*/ /**/
+  0x0447, /*U+0447*/ /**/
+  0x0448, /*U+0448*/ /**/
+  0x0449, /*U+0449*/ /**/
+  0x044A, /*U+044A*/ /**/
+  0x044B, /*U+044B*/ /**/
+  0x044C, /*U+044C*/ /**/
+  0x044D, /*U+044D*/ /**/
+  0x044E, /*U+044E*/ /**/
+  0x044F, /*U+044F*/ /**/
+  0x0450, /*U+0450*/ /**/
+  0x0451, /*U+0451*/ /**/
+  0x0452, /*U+0452*/ /**/
+  0x0453, /*U+0453*/ /**/
+  0x0454, /*U+0454*/ /**/
+  0x0455, /*U+0455*/ /**/
+  0x0456, /*U+0456*/ /**/
+  0x0457, /*U+0457*/ /**/
+  0x0458, /*U+0458*/ /**/
+  0x0459, /*U+0459*/ /**/
+  0x045A, /*U+045A*/ /**/
+  0x045B, /*U+045B*/ /**/
+  0x045C, /*U+045C*/ /**/
+  0x045D, /*U+045D*/ /**/
+  0x045E, /*U+045E*/ /**/
+  0x045F, /*U+045F*/ /**/
+  0x0461, /*U+0460*/ /*CYRILLIC CAPITAL LETTER OMEGA*/
+  0x0461, /*U+0461*/ /**/
+  0x0463, /*U+0462*/ /*CYRILLIC CAPITAL LETTER YAT*/
+  0x0463, /*U+0463*/ /**/
+  0x0465, /*U+0464*/ /*CYRILLIC CAPITAL LETTER IOTIFIED E*/
+  0x0465, /*U+0465*/ /**/
+  0x0467, /*U+0466*/ /*CYRILLIC CAPITAL LETTER LITTLE YUS*/
+  0x0467, /*U+0467*/ /**/
+  0x0469, /*U+0468*/ /*CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS*/
+  0x0469, /*U+0469*/ /**/
+  0x046B, /*U+046A*/ /*CYRILLIC CAPITAL LETTER BIG YUS*/
+  0x046B, /*U+046B*/ /**/
+  0x046D, /*U+046C*/ /*CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS*/
+  0x046D, /*U+046D*/ /**/
+  0x046F, /*U+046E*/ /*CYRILLIC CAPITAL LETTER KSI*/
+  0x046F, /*U+046F*/ /**/
+  0x0471, /*U+0470*/ /*CYRILLIC CAPITAL LETTER PSI*/
+  0x0471, /*U+0471*/ /**/
+  0x0473, /*U+0472*/ /*CYRILLIC CAPITAL LETTER FITA*/
+  0x0473, /*U+0473*/ /**/
+  0x0475, /*U+0474*/ /*CYRILLIC CAPITAL LETTER IZHITSA*/
+  0x0475, /*U+0475*/ /**/
+  0x0477, /*U+0476*/ /*CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT*/
+  0x0477, /*U+0477*/ /**/
+  0x0479, /*U+0478*/ /*CYRILLIC CAPITAL LETTER UK*/
+  0x0479, /*U+0479*/ /**/
+  0x047B, /*U+047A*/ /*CYRILLIC CAPITAL LETTER ROUND OMEGA*/
+  0x047B, /*U+047B*/ /**/
+  0x047D, /*U+047C*/ /*CYRILLIC CAPITAL LETTER OMEGA WITH TITLO*/
+  0x047D, /*U+047D*/ /**/
+  0x047F, /*U+047E*/ /*CYRILLIC CAPITAL LETTER OT*/
+  0x047F, /*U+047F*/ /**/
+  0x0481, /*U+0480*/ /*CYRILLIC CAPITAL LETTER KOPPA*/
+  0x0481, /*U+0481*/ /**/
+  0x0482, /*U+0482*/ /**/
+  0x0483, /*U+0483*/ /**/
+  0x0484, /*U+0484*/ /**/
+  0x0485, /*U+0485*/ /**/
+  0x0486, /*U+0486*/ /**/
+  0x0487, /*U+0487*/ /**/
+  0x0488, /*U+0488*/ /**/
+  0x0489, /*U+0489*/ /**/
+  0x048B, /*U+048A*/ /*CYRILLIC CAPITAL LETTER SHORT I WITH TAIL*/
+  0x048B, /*U+048B*/ /**/
+  0x048D, /*U+048C*/ /*CYRILLIC CAPITAL LETTER SEMISOFT SIGN*/
+  0x048D, /*U+048D*/ /**/
+  0x048F, /*U+048E*/ /*CYRILLIC CAPITAL LETTER ER WITH TICK*/
+  0x048F, /*U+048F*/ /**/
+  0x0491, /*U+0490*/ /*CYRILLIC CAPITAL LETTER GHE WITH UPTURN*/
+  0x0491, /*U+0491*/ /**/
+  0x0493, /*U+0492*/ /*CYRILLIC CAPITAL LETTER GHE WITH STROKE*/
+  0x0493, /*U+0493*/ /**/
+  0x0495, /*U+0494*/ /*CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK*/
+  0x0495, /*U+0495*/ /**/
+  0x0497, /*U+0496*/ /*CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER*/
+  0x0497, /*U+0497*/ /**/
+  0x0499, /*U+0498*/ /*CYRILLIC CAPITAL LETTER ZE WITH DESCENDER*/
+  0x0499, /*U+0499*/ /**/
+  0x049B, /*U+049A*/ /*CYRILLIC CAPITAL LETTER KA WITH DESCENDER*/
+  0x049B, /*U+049B*/ /**/
+  0x049D, /*U+049C*/ /*CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE*/
+  0x049D, /*U+049D*/ /**/
+  0x049F, /*U+049E*/ /*CYRILLIC CAPITAL LETTER KA WITH STROKE*/
+  0x049F, /*U+049F*/ /**/
+  0x04A1, /*U+04A0*/ /*CYRILLIC CAPITAL LETTER BASHKIR KA*/
+  0x04A1, /*U+04A1*/ /**/
+  0x04A3, /*U+04A2*/ /*CYRILLIC CAPITAL LETTER EN WITH DESCENDER*/
+  0x04A3, /*U+04A3*/ /**/
+  0x04A5, /*U+04A4*/ /*CYRILLIC CAPITAL LIGATURE EN GHE*/
+  0x04A5, /*U+04A5*/ /**/
+  0x04A7, /*U+04A6*/ /*CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK*/
+  0x04A7, /*U+04A7*/ /**/
+  0x04A9, /*U+04A8*/ /*CYRILLIC CAPITAL LETTER ABKHASIAN HA*/
+  0x04A9, /*U+04A9*/ /**/
+  0x04AB, /*U+04AA*/ /*CYRILLIC CAPITAL LETTER ES WITH DESCENDER*/
+  0x04AB, /*U+04AB*/ /**/
+  0x04AD, /*U+04AC*/ /*CYRILLIC CAPITAL LETTER TE WITH DESCENDER*/
+  0x04AD, /*U+04AD*/ /**/
+  0x04AF, /*U+04AE*/ /*CYRILLIC CAPITAL LETTER STRAIGHT U*/
+  0x04AF, /*U+04AF*/ /**/
+  0x04B1, /*U+04B0*/ /*CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE*/
+  0x04B1, /*U+04B1*/ /**/
+  0x04B3, /*U+04B2*/ /*CYRILLIC CAPITAL LETTER HA WITH DESCENDER*/
+  0x04B3, /*U+04B3*/ /**/
+  0x04B5, /*U+04B4*/ /*CYRILLIC CAPITAL LIGATURE TE TSE*/
+  0x04B5, /*U+04B5*/ /**/
+  0x04B7, /*U+04B6*/ /*CYRILLIC CAPITAL LETTER CHE WITH DESCENDER*/
+  0x04B7, /*U+04B7*/ /**/
+  0x04B9, /*U+04B8*/ /*CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE*/
+  0x04B9, /*U+04B9*/ /**/
+  0x04BB, /*U+04BA*/ /*CYRILLIC CAPITAL LETTER SHHA*/
+  0x04BB, /*U+04BB*/ /**/
+  0x04BD, /*U+04BC*/ /*CYRILLIC CAPITAL LETTER ABKHASIAN CHE*/
+  0x04BD, /*U+04BD*/ /**/
+  0x04BF, /*U+04BE*/ /*CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER*/
+  0x04BF, /*U+04BF*/ /**/
+  0x04CF, /*U+04C0*/ /*CYRILLIC LETTER PALOCHKA*/
+  0x04C2, /*U+04C1*/ /*CYRILLIC CAPITAL LETTER ZHE WITH BREVE*/
+  0x04C2, /*U+04C2*/ /**/
+  0x04C4, /*U+04C3*/ /*CYRILLIC CAPITAL LETTER KA WITH HOOK*/
+  0x04C4, /*U+04C4*/ /**/
+  0x04C6, /*U+04C5*/ /*CYRILLIC CAPITAL LETTER EL WITH TAIL*/
+  0x04C6, /*U+04C6*/ /**/
+  0x04C8, /*U+04C7*/ /*CYRILLIC CAPITAL LETTER EN WITH HOOK*/
+  0x04C8, /*U+04C8*/ /**/
+  0x04CA, /*U+04C9*/ /*CYRILLIC CAPITAL LETTER EN WITH TAIL*/
+  0x04CA, /*U+04CA*/ /**/
+  0x04CC, /*U+04CB*/ /*CYRILLIC CAPITAL LETTER KHAKASSIAN CHE*/
+  0x04CC, /*U+04CC*/ /**/
+  0x04CE, /*U+04CD*/ /*CYRILLIC CAPITAL LETTER EM WITH TAIL*/
+  0x04CE, /*U+04CE*/ /**/
+  0x04CF, /*U+04CF*/ /**/
+  0x04D1, /*U+04D0*/ /*CYRILLIC CAPITAL LETTER A WITH BREVE*/
+  0x04D1, /*U+04D1*/ /**/
+  0x04D3, /*U+04D2*/ /*CYRILLIC CAPITAL LETTER A WITH DIAERESIS*/
+  0x04D3, /*U+04D3*/ /**/
+  0x04D5, /*U+04D4*/ /*CYRILLIC CAPITAL LIGATURE A IE*/
+  0x04D5, /*U+04D5*/ /**/
+  0x04D7, /*U+04D6*/ /*CYRILLIC CAPITAL LETTER IE WITH BREVE*/
+  0x04D7, /*U+04D7*/ /**/
+  0x04D9, /*U+04D8*/ /*CYRILLIC CAPITAL LETTER SCHWA*/
+  0x04D9, /*U+04D9*/ /**/
+  0x04DB, /*U+04DA*/ /*CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS*/
+  0x04DB, /*U+04DB*/ /**/
+  0x04DD, /*U+04DC*/ /*CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS*/
+  0x04DD, /*U+04DD*/ /**/
+  0x04DF, /*U+04DE*/ /*CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS*/
+  0x04DF, /*U+04DF*/ /**/
+  0x04E1, /*U+04E0*/ /*CYRILLIC CAPITAL LETTER ABKHASIAN DZE*/
+  0x04E1, /*U+04E1*/ /**/
+  0x04E3, /*U+04E2*/ /*CYRILLIC CAPITAL LETTER I WITH MACRON*/
+  0x04E3, /*U+04E3*/ /**/
+  0x04E5, /*U+04E4*/ /*CYRILLIC CAPITAL LETTER I WITH DIAERESIS*/
+  0x04E5, /*U+04E5*/ /**/
+  0x04E7, /*U+04E6*/ /*CYRILLIC CAPITAL LETTER O WITH DIAERESIS*/
+  0x04E7, /*U+04E7*/ /**/
+  0x04E9, /*U+04E8*/ /*CYRILLIC CAPITAL LETTER BARRED O*/
+  0x04E9, /*U+04E9*/ /**/
+  0x04EB, /*U+04EA*/ /*CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS*/
+  0x04EB, /*U+04EB*/ /**/
+  0x04ED, /*U+04EC*/ /*CYRILLIC CAPITAL LETTER E WITH DIAERESIS*/
+  0x04ED, /*U+04ED*/ /**/
+  0x04EF, /*U+04EE*/ /*CYRILLIC CAPITAL LETTER U WITH MACRON*/
+  0x04EF, /*U+04EF*/ /**/
+  0x04F1, /*U+04F0*/ /*CYRILLIC CAPITAL LETTER U WITH DIAERESIS*/
+  0x04F1, /*U+04F1*/ /**/
+  0x04F3, /*U+04F2*/ /*CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE*/
+  0x04F3, /*U+04F3*/ /**/
+  0x04F5, /*U+04F4*/ /*CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS*/
+  0x04F5, /*U+04F5*/ /**/
+  0x04F7, /*U+04F6*/ /*CYRILLIC CAPITAL LETTER GHE WITH DESCENDER*/
+  0x04F7, /*U+04F7*/ /**/
+  0x04F9, /*U+04F8*/ /*CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS*/
+  0x04F9, /*U+04F9*/ /**/
+  0x04FB, /*U+04FA*/ /*CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK*/
+  0x04FB, /*U+04FB*/ /**/
+  0x04FD, /*U+04FC*/ /*CYRILLIC CAPITAL LETTER HA WITH HOOK*/
+  0x04FD, /*U+04FD*/ /**/
+  0x04FF, /*U+04FE*/ /*CYRILLIC CAPITAL LETTER HA WITH STROKE*/
+  0x04FF, /*U+04FF*/ /**/
+  0x0501, /*U+0500*/ /*CYRILLIC CAPITAL LETTER KOMI DE*/
+  0x0501, /*U+0501*/ /**/
+  0x0503, /*U+0502*/ /*CYRILLIC CAPITAL LETTER KOMI DJE*/
+  0x0503, /*U+0503*/ /**/
+  0x0505, /*U+0504*/ /*CYRILLIC CAPITAL LETTER KOMI ZJE*/
+  0x0505, /*U+0505*/ /**/
+  0x0507, /*U+0506*/ /*CYRILLIC CAPITAL LETTER KOMI DZJE*/
+  0x0507, /*U+0507*/ /**/
+  0x0509, /*U+0508*/ /*CYRILLIC CAPITAL LETTER KOMI LJE*/
+  0x0509, /*U+0509*/ /**/
+  0x050B, /*U+050A*/ /*CYRILLIC CAPITAL LETTER KOMI NJE*/
+  0x050B, /*U+050B*/ /**/
+  0x050D, /*U+050C*/ /*CYRILLIC CAPITAL LETTER KOMI SJE*/
+  0x050D, /*U+050D*/ /**/
+  0x050F, /*U+050E*/ /*CYRILLIC CAPITAL LETTER KOMI TJE*/
+  0x050F, /*U+050F*/ /**/
+  0x0511, /*U+0510*/ /*CYRILLIC CAPITAL LETTER REVERSED ZE*/
+  0x0511, /*U+0511*/ /**/
+  0x0513, /*U+0512*/ /*CYRILLIC CAPITAL LETTER EL WITH HOOK*/
+  0x0513, /*U+0513*/ /**/
+  0x0515, /*U+0514*/ /*CYRILLIC CAPITAL LETTER LHA*/
+  0x0515, /*U+0515*/ /**/
+  0x0517, /*U+0516*/ /*CYRILLIC CAPITAL LETTER RHA*/
+  0x0517, /*U+0517*/ /**/
+  0x0519, /*U+0518*/ /*CYRILLIC CAPITAL LETTER YAE*/
+  0x0519, /*U+0519*/ /**/
+  0x051B, /*U+051A*/ /*CYRILLIC CAPITAL LETTER QA*/
+  0x051B, /*U+051B*/ /**/
+  0x051D, /*U+051C*/ /*CYRILLIC CAPITAL LETTER WE*/
+  0x051D, /*U+051D*/ /**/
+  0x051F, /*U+051E*/ /*CYRILLIC CAPITAL LETTER ALEUT KA*/
+  0x051F, /*U+051F*/ /**/
+  0x0521, /*U+0520*/ /*CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK*/
+  0x0521, /*U+0521*/ /**/
+  0x0523, /*U+0522*/ /*CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK*/
+  0x0523, /*U+0523*/ /**/
+  0x0525, /*U+0524*/ /*CYRILLIC CAPITAL LETTER PE WITH DESCENDER*/
+  0x0525, /*U+0525*/ /**/
+  0x0527, /*U+0526*/ /*CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER*/
+  0x0527, /*U+0527*/ /**/
+  0x0528, /*U+0528*/ /**/
+  0x0529, /*U+0529*/ /**/
+  0x052A, /*U+052A*/ /**/
+  0x052B, /*U+052B*/ /**/
+  0x052C, /*U+052C*/ /**/
+  0x052D, /*U+052D*/ /**/
+  0x052E, /*U+052E*/ /**/
+  0x052F, /*U+052F*/ /**/
+  0x0530, /*U+0530*/ /**/
+  0x0561, /*U+0531*/ /*ARMENIAN CAPITAL LETTER AYB*/
+  0x0562, /*U+0532*/ /*ARMENIAN CAPITAL LETTER BEN*/
+  0x0563, /*U+0533*/ /*ARMENIAN CAPITAL LETTER GIM*/
+  0x0564, /*U+0534*/ /*ARMENIAN CAPITAL LETTER DA*/
+  0x0565, /*U+0535*/ /*ARMENIAN CAPITAL LETTER ECH*/
+  0x0566, /*U+0536*/ /*ARMENIAN CAPITAL LETTER ZA*/
+  0x0567, /*U+0537*/ /*ARMENIAN CAPITAL LETTER EH*/
+  0x0568, /*U+0538*/ /*ARMENIAN CAPITAL LETTER ET*/
+  0x0569, /*U+0539*/ /*ARMENIAN CAPITAL LETTER TO*/
+  0x056A, /*U+053A*/ /*ARMENIAN CAPITAL LETTER ZHE*/
+  0x056B, /*U+053B*/ /*ARMENIAN CAPITAL LETTER INI*/
+  0x056C, /*U+053C*/ /*ARMENIAN CAPITAL LETTER LIWN*/
+  0x056D, /*U+053D*/ /*ARMENIAN CAPITAL LETTER XEH*/
+  0x056E, /*U+053E*/ /*ARMENIAN CAPITAL LETTER CA*/
+  0x056F, /*U+053F*/ /*ARMENIAN CAPITAL LETTER KEN*/
+  0x0570, /*U+0540*/ /*ARMENIAN CAPITAL LETTER HO*/
+  0x0571, /*U+0541*/ /*ARMENIAN CAPITAL LETTER JA*/
+  0x0572, /*U+0542*/ /*ARMENIAN CAPITAL LETTER GHAD*/
+  0x0573, /*U+0543*/ /*ARMENIAN CAPITAL LETTER CHEH*/
+  0x0574, /*U+0544*/ /*ARMENIAN CAPITAL LETTER MEN*/
+  0x0575, /*U+0545*/ /*ARMENIAN CAPITAL LETTER YI*/
+  0x0576, /*U+0546*/ /*ARMENIAN CAPITAL LETTER NOW*/
+  0x0577, /*U+0547*/ /*ARMENIAN CAPITAL LETTER SHA*/
+  0x0578, /*U+0548*/ /*ARMENIAN CAPITAL LETTER VO*/
+  0x0579, /*U+0549*/ /*ARMENIAN CAPITAL LETTER CHA*/
+  0x057A, /*U+054A*/ /*ARMENIAN CAPITAL LETTER PEH*/
+  0x057B, /*U+054B*/ /*ARMENIAN CAPITAL LETTER JHEH*/
+  0x057C, /*U+054C*/ /*ARMENIAN CAPITAL LETTER RA*/
+  0x057D, /*U+054D*/ /*ARMENIAN CAPITAL LETTER SEH*/
+  0x057E, /*U+054E*/ /*ARMENIAN CAPITAL LETTER VEW*/
+  0x057F, /*U+054F*/ /*ARMENIAN CAPITAL LETTER TIWN*/
+  0x0580, /*U+0550*/ /*ARMENIAN CAPITAL LETTER REH*/
+  0x0581, /*U+0551*/ /*ARMENIAN CAPITAL LETTER CO*/
+  0x0582, /*U+0552*/ /*ARMENIAN CAPITAL LETTER YIWN*/
+  0x0583, /*U+0553*/ /*ARMENIAN CAPITAL LETTER PIWR*/
+  0x0584, /*U+0554*/ /*ARMENIAN CAPITAL LETTER KEH*/
+  0x0585, /*U+0555*/ /*ARMENIAN CAPITAL LETTER OH*/
+  0x0586, /*U+0556*/ /*ARMENIAN CAPITAL LETTER FEH*/
+  0x0557, /*U+0557*/ /**/
+  0x0558, /*U+0558*/ /**/
+  0x0559, /*U+0559*/ /**/
+  0x055A, /*U+055A*/ /**/
+  0x055B, /*U+055B*/ /**/
+  0x055C, /*U+055C*/ /**/
+  0x055D, /*U+055D*/ /**/
+  0x055E, /*U+055E*/ /**/
+  0x055F, /*U+055F*/ /**/
+  0x0560, /*U+0560*/ /**/
+  0x0561, /*U+0561*/ /**/
+  0x0562, /*U+0562*/ /**/
+  0x0563, /*U+0563*/ /**/
+  0x0564, /*U+0564*/ /**/
+  0x0565, /*U+0565*/ /**/
+  0x0566, /*U+0566*/ /**/
+  0x0567, /*U+0567*/ /**/
+  0x0568, /*U+0568*/ /**/
+  0x0569, /*U+0569*/ /**/
+  0x056A, /*U+056A*/ /**/
+  0x056B, /*U+056B*/ /**/
+  0x056C, /*U+056C*/ /**/
+  0x056D, /*U+056D*/ /**/
+  0x056E, /*U+056E*/ /**/
+  0x056F, /*U+056F*/ /**/
+  0x0570, /*U+0570*/ /**/
+  0x0571, /*U+0571*/ /**/
+  0x0572, /*U+0572*/ /**/
+  0x0573, /*U+0573*/ /**/
+  0x0574, /*U+0574*/ /**/
+  0x0575, /*U+0575*/ /**/
+  0x0576, /*U+0576*/ /**/
+  0x0577, /*U+0577*/ /**/
+  0x0578, /*U+0578*/ /**/
+  0x0579, /*U+0579*/ /**/
+  0x057A, /*U+057A*/ /**/
+  0x057B, /*U+057B*/ /**/
+  0x057C, /*U+057C*/ /**/
+  0x057D, /*U+057D*/ /**/
+  0x057E, /*U+057E*/ /**/
+  0x057F, /*U+057F*/ /**/
+};
+
+static const u_int16_t lower_table_4[128] = {
+  0x1080, /*U+1080*/ /**/
+  0x1081, /*U+1081*/ /**/
+  0x1082, /*U+1082*/ /**/
+  0x1083, /*U+1083*/ /**/
+  0x1084, /*U+1084*/ /**/
+  0x1085, /*U+1085*/ /**/
+  0x1086, /*U+1086*/ /**/
+  0x1087, /*U+1087*/ /**/
+  0x1088, /*U+1088*/ /**/
+  0x1089, /*U+1089*/ /**/
+  0x108A, /*U+108A*/ /**/
+  0x108B, /*U+108B*/ /**/
+  0x108C, /*U+108C*/ /**/
+  0x108D, /*U+108D*/ /**/
+  0x108E, /*U+108E*/ /**/
+  0x108F, /*U+108F*/ /**/
+  0x1090, /*U+1090*/ /**/
+  0x1091, /*U+1091*/ /**/
+  0x1092, /*U+1092*/ /**/
+  0x1093, /*U+1093*/ /**/
+  0x1094, /*U+1094*/ /**/
+  0x1095, /*U+1095*/ /**/
+  0x1096, /*U+1096*/ /**/
+  0x1097, /*U+1097*/ /**/
+  0x1098, /*U+1098*/ /**/
+  0x1099, /*U+1099*/ /**/
+  0x109A, /*U+109A*/ /**/
+  0x109B, /*U+109B*/ /**/
+  0x109C, /*U+109C*/ /**/
+  0x109D, /*U+109D*/ /**/
+  0x109E, /*U+109E*/ /**/
+  0x109F, /*U+109F*/ /**/
+  0x2D00, /*U+10A0*/ /*GEORGIAN CAPITAL LETTER AN*/
+  0x2D01, /*U+10A1*/ /*GEORGIAN CAPITAL LETTER BAN*/
+  0x2D02, /*U+10A2*/ /*GEORGIAN CAPITAL LETTER GAN*/
+  0x2D03, /*U+10A3*/ /*GEORGIAN CAPITAL LETTER DON*/
+  0x2D04, /*U+10A4*/ /*GEORGIAN CAPITAL LETTER EN*/
+  0x2D05, /*U+10A5*/ /*GEORGIAN CAPITAL LETTER VIN*/
+  0x2D06, /*U+10A6*/ /*GEORGIAN CAPITAL LETTER ZEN*/
+  0x2D07, /*U+10A7*/ /*GEORGIAN CAPITAL LETTER TAN*/
+  0x2D08, /*U+10A8*/ /*GEORGIAN CAPITAL LETTER IN*/
+  0x2D09, /*U+10A9*/ /*GEORGIAN CAPITAL LETTER KAN*/
+  0x2D0A, /*U+10AA*/ /*GEORGIAN CAPITAL LETTER LAS*/
+  0x2D0B, /*U+10AB*/ /*GEORGIAN CAPITAL LETTER MAN*/
+  0x2D0C, /*U+10AC*/ /*GEORGIAN CAPITAL LETTER NAR*/
+  0x2D0D, /*U+10AD*/ /*GEORGIAN CAPITAL LETTER ON*/
+  0x2D0E, /*U+10AE*/ /*GEORGIAN CAPITAL LETTER PAR*/
+  0x2D0F, /*U+10AF*/ /*GEORGIAN CAPITAL LETTER ZHAR*/
+  0x2D10, /*U+10B0*/ /*GEORGIAN CAPITAL LETTER RAE*/
+  0x2D11, /*U+10B1*/ /*GEORGIAN CAPITAL LETTER SAN*/
+  0x2D12, /*U+10B2*/ /*GEORGIAN CAPITAL LETTER TAR*/
+  0x2D13, /*U+10B3*/ /*GEORGIAN CAPITAL LETTER UN*/
+  0x2D14, /*U+10B4*/ /*GEORGIAN CAPITAL LETTER PHAR*/
+  0x2D15, /*U+10B5*/ /*GEORGIAN CAPITAL LETTER KHAR*/
+  0x2D16, /*U+10B6*/ /*GEORGIAN CAPITAL LETTER GHAN*/
+  0x2D17, /*U+10B7*/ /*GEORGIAN CAPITAL LETTER QAR*/
+  0x2D18, /*U+10B8*/ /*GEORGIAN CAPITAL LETTER SHIN*/
+  0x2D19, /*U+10B9*/ /*GEORGIAN CAPITAL LETTER CHIN*/
+  0x2D1A, /*U+10BA*/ /*GEORGIAN CAPITAL LETTER CAN*/
+  0x2D1B, /*U+10BB*/ /*GEORGIAN CAPITAL LETTER JIL*/
+  0x2D1C, /*U+10BC*/ /*GEORGIAN CAPITAL LETTER CIL*/
+  0x2D1D, /*U+10BD*/ /*GEORGIAN CAPITAL LETTER CHAR*/
+  0x2D1E, /*U+10BE*/ /*GEORGIAN CAPITAL LETTER XAN*/
+  0x2D1F, /*U+10BF*/ /*GEORGIAN CAPITAL LETTER JHAN*/
+  0x2D20, /*U+10C0*/ /*GEORGIAN CAPITAL LETTER HAE*/
+  0x2D21, /*U+10C1*/ /*GEORGIAN CAPITAL LETTER HE*/
+  0x2D22, /*U+10C2*/ /*GEORGIAN CAPITAL LETTER HIE*/
+  0x2D23, /*U+10C3*/ /*GEORGIAN CAPITAL LETTER WE*/
+  0x2D24, /*U+10C4*/ /*GEORGIAN CAPITAL LETTER HAR*/
+  0x2D25, /*U+10C5*/ /*GEORGIAN CAPITAL LETTER HOE*/
+  0x10C6, /*U+10C6*/ /**/
+  0x10C7, /*U+10C7*/ /**/
+  0x10C8, /*U+10C8*/ /**/
+  0x10C9, /*U+10C9*/ /**/
+  0x10CA, /*U+10CA*/ /**/
+  0x10CB, /*U+10CB*/ /**/
+  0x10CC, /*U+10CC*/ /**/
+  0x10CD, /*U+10CD*/ /**/
+  0x10CE, /*U+10CE*/ /**/
+  0x10CF, /*U+10CF*/ /**/
+  0x10D0, /*U+10D0*/ /**/
+  0x10D1, /*U+10D1*/ /**/
+  0x10D2, /*U+10D2*/ /**/
+  0x10D3, /*U+10D3*/ /**/
+  0x10D4, /*U+10D4*/ /**/
+  0x10D5, /*U+10D5*/ /**/
+  0x10D6, /*U+10D6*/ /**/
+  0x10D7, /*U+10D7*/ /**/
+  0x10D8, /*U+10D8*/ /**/
+  0x10D9, /*U+10D9*/ /**/
+  0x10DA, /*U+10DA*/ /**/
+  0x10DB, /*U+10DB*/ /**/
+  0x10DC, /*U+10DC*/ /**/
+  0x10DD, /*U+10DD*/ /**/
+  0x10DE, /*U+10DE*/ /**/
+  0x10DF, /*U+10DF*/ /**/
+  0x10E0, /*U+10E0*/ /**/
+  0x10E1, /*U+10E1*/ /**/
+  0x10E2, /*U+10E2*/ /**/
+  0x10E3, /*U+10E3*/ /**/
+  0x10E4, /*U+10E4*/ /**/
+  0x10E5, /*U+10E5*/ /**/
+  0x10E6, /*U+10E6*/ /**/
+  0x10E7, /*U+10E7*/ /**/
+  0x10E8, /*U+10E8*/ /**/
+  0x10E9, /*U+10E9*/ /**/
+  0x10EA, /*U+10EA*/ /**/
+  0x10EB, /*U+10EB*/ /**/
+  0x10EC, /*U+10EC*/ /**/
+  0x10ED, /*U+10ED*/ /**/
+  0x10EE, /*U+10EE*/ /**/
+  0x10EF, /*U+10EF*/ /**/
+  0x10F0, /*U+10F0*/ /**/
+  0x10F1, /*U+10F1*/ /**/
+  0x10F2, /*U+10F2*/ /**/
+  0x10F3, /*U+10F3*/ /**/
+  0x10F4, /*U+10F4*/ /**/
+  0x10F5, /*U+10F5*/ /**/
+  0x10F6, /*U+10F6*/ /**/
+  0x10F7, /*U+10F7*/ /**/
+  0x10F8, /*U+10F8*/ /**/
+  0x10F9, /*U+10F9*/ /**/
+  0x10FA, /*U+10FA*/ /**/
+  0x10FB, /*U+10FB*/ /**/
+  0x10FC, /*U+10FC*/ /**/
+  0x10FD, /*U+10FD*/ /**/
+  0x10FE, /*U+10FE*/ /**/
+  0x10FF, /*U+10FF*/ /**/
+};
+
+static const u_int16_t lower_table_5[512] = {
+  0x1E01, /*U+1E00*/ /*LATIN CAPITAL LETTER A WITH RING BELOW*/
+  0x1E01, /*U+1E01*/ /**/
+  0x1E03, /*U+1E02*/ /*LATIN CAPITAL LETTER B WITH DOT ABOVE*/
+  0x1E03, /*U+1E03*/ /**/
+  0x1E05, /*U+1E04*/ /*LATIN CAPITAL LETTER B WITH DOT BELOW*/
+  0x1E05, /*U+1E05*/ /**/
+  0x1E07, /*U+1E06*/ /*LATIN CAPITAL LETTER B WITH LINE BELOW*/
+  0x1E07, /*U+1E07*/ /**/
+  0x1E09, /*U+1E08*/ /*LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE*/
+  0x1E09, /*U+1E09*/ /**/
+  0x1E0B, /*U+1E0A*/ /*LATIN CAPITAL LETTER D WITH DOT ABOVE*/
+  0x1E0B, /*U+1E0B*/ /**/
+  0x1E0D, /*U+1E0C*/ /*LATIN CAPITAL LETTER D WITH DOT BELOW*/
+  0x1E0D, /*U+1E0D*/ /**/
+  0x1E0F, /*U+1E0E*/ /*LATIN CAPITAL LETTER D WITH LINE BELOW*/
+  0x1E0F, /*U+1E0F*/ /**/
+  0x1E11, /*U+1E10*/ /*LATIN CAPITAL LETTER D WITH CEDILLA*/
+  0x1E11, /*U+1E11*/ /**/
+  0x1E13, /*U+1E12*/ /*LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW*/
+  0x1E13, /*U+1E13*/ /**/
+  0x1E15, /*U+1E14*/ /*LATIN CAPITAL LETTER E WITH MACRON AND GRAVE*/
+  0x1E15, /*U+1E15*/ /**/
+  0x1E17, /*U+1E16*/ /*LATIN CAPITAL LETTER E WITH MACRON AND ACUTE*/
+  0x1E17, /*U+1E17*/ /**/
+  0x1E19, /*U+1E18*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW*/
+  0x1E19, /*U+1E19*/ /**/
+  0x1E1B, /*U+1E1A*/ /*LATIN CAPITAL LETTER E WITH TILDE BELOW*/
+  0x1E1B, /*U+1E1B*/ /**/
+  0x1E1D, /*U+1E1C*/ /*LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE*/
+  0x1E1D, /*U+1E1D*/ /**/
+  0x1E1F, /*U+1E1E*/ /*LATIN CAPITAL LETTER F WITH DOT ABOVE*/
+  0x1E1F, /*U+1E1F*/ /**/
+  0x1E21, /*U+1E20*/ /*LATIN CAPITAL LETTER G WITH MACRON*/
+  0x1E21, /*U+1E21*/ /**/
+  0x1E23, /*U+1E22*/ /*LATIN CAPITAL LETTER H WITH DOT ABOVE*/
+  0x1E23, /*U+1E23*/ /**/
+  0x1E25, /*U+1E24*/ /*LATIN CAPITAL LETTER H WITH DOT BELOW*/
+  0x1E25, /*U+1E25*/ /**/
+  0x1E27, /*U+1E26*/ /*LATIN CAPITAL LETTER H WITH DIAERESIS*/
+  0x1E27, /*U+1E27*/ /**/
+  0x1E29, /*U+1E28*/ /*LATIN CAPITAL LETTER H WITH CEDILLA*/
+  0x1E29, /*U+1E29*/ /**/
+  0x1E2B, /*U+1E2A*/ /*LATIN CAPITAL LETTER H WITH BREVE BELOW*/
+  0x1E2B, /*U+1E2B*/ /**/
+  0x1E2D, /*U+1E2C*/ /*LATIN CAPITAL LETTER I WITH TILDE BELOW*/
+  0x1E2D, /*U+1E2D*/ /**/
+  0x1E2F, /*U+1E2E*/ /*LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE*/
+  0x1E2F, /*U+1E2F*/ /**/
+  0x1E31, /*U+1E30*/ /*LATIN CAPITAL LETTER K WITH ACUTE*/
+  0x1E31, /*U+1E31*/ /**/
+  0x1E33, /*U+1E32*/ /*LATIN CAPITAL LETTER K WITH DOT BELOW*/
+  0x1E33, /*U+1E33*/ /**/
+  0x1E35, /*U+1E34*/ /*LATIN CAPITAL LETTER K WITH LINE BELOW*/
+  0x1E35, /*U+1E35*/ /**/
+  0x1E37, /*U+1E36*/ /*LATIN CAPITAL LETTER L WITH DOT BELOW*/
+  0x1E37, /*U+1E37*/ /**/
+  0x1E39, /*U+1E38*/ /*LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON*/
+  0x1E39, /*U+1E39*/ /**/
+  0x1E3B, /*U+1E3A*/ /*LATIN CAPITAL LETTER L WITH LINE BELOW*/
+  0x1E3B, /*U+1E3B*/ /**/
+  0x1E3D, /*U+1E3C*/ /*LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW*/
+  0x1E3D, /*U+1E3D*/ /**/
+  0x1E3F, /*U+1E3E*/ /*LATIN CAPITAL LETTER M WITH ACUTE*/
+  0x1E3F, /*U+1E3F*/ /**/
+  0x1E41, /*U+1E40*/ /*LATIN CAPITAL LETTER M WITH DOT ABOVE*/
+  0x1E41, /*U+1E41*/ /**/
+  0x1E43, /*U+1E42*/ /*LATIN CAPITAL LETTER M WITH DOT BELOW*/
+  0x1E43, /*U+1E43*/ /**/
+  0x1E45, /*U+1E44*/ /*LATIN CAPITAL LETTER N WITH DOT ABOVE*/
+  0x1E45, /*U+1E45*/ /**/
+  0x1E47, /*U+1E46*/ /*LATIN CAPITAL LETTER N WITH DOT BELOW*/
+  0x1E47, /*U+1E47*/ /**/
+  0x1E49, /*U+1E48*/ /*LATIN CAPITAL LETTER N WITH LINE BELOW*/
+  0x1E49, /*U+1E49*/ /**/
+  0x1E4B, /*U+1E4A*/ /*LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW*/
+  0x1E4B, /*U+1E4B*/ /**/
+  0x1E4D, /*U+1E4C*/ /*LATIN CAPITAL LETTER O WITH TILDE AND ACUTE*/
+  0x1E4D, /*U+1E4D*/ /**/
+  0x1E4F, /*U+1E4E*/ /*LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS*/
+  0x1E4F, /*U+1E4F*/ /**/
+  0x1E51, /*U+1E50*/ /*LATIN CAPITAL LETTER O WITH MACRON AND GRAVE*/
+  0x1E51, /*U+1E51*/ /**/
+  0x1E53, /*U+1E52*/ /*LATIN CAPITAL LETTER O WITH MACRON AND ACUTE*/
+  0x1E53, /*U+1E53*/ /**/
+  0x1E55, /*U+1E54*/ /*LATIN CAPITAL LETTER P WITH ACUTE*/
+  0x1E55, /*U+1E55*/ /**/
+  0x1E57, /*U+1E56*/ /*LATIN CAPITAL LETTER P WITH DOT ABOVE*/
+  0x1E57, /*U+1E57*/ /**/
+  0x1E59, /*U+1E58*/ /*LATIN CAPITAL LETTER R WITH DOT ABOVE*/
+  0x1E59, /*U+1E59*/ /**/
+  0x1E5B, /*U+1E5A*/ /*LATIN CAPITAL LETTER R WITH DOT BELOW*/
+  0x1E5B, /*U+1E5B*/ /**/
+  0x1E5D, /*U+1E5C*/ /*LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON*/
+  0x1E5D, /*U+1E5D*/ /**/
+  0x1E5F, /*U+1E5E*/ /*LATIN CAPITAL LETTER R WITH LINE BELOW*/
+  0x1E5F, /*U+1E5F*/ /**/
+  0x1E61, /*U+1E60*/ /*LATIN CAPITAL LETTER S WITH DOT ABOVE*/
+  0x1E61, /*U+1E61*/ /**/
+  0x1E63, /*U+1E62*/ /*LATIN CAPITAL LETTER S WITH DOT BELOW*/
+  0x1E63, /*U+1E63*/ /**/
+  0x1E65, /*U+1E64*/ /*LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE*/
+  0x1E65, /*U+1E65*/ /**/
+  0x1E67, /*U+1E66*/ /*LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE*/
+  0x1E67, /*U+1E67*/ /**/
+  0x1E69, /*U+1E68*/ /*LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE*/
+  0x1E69, /*U+1E69*/ /**/
+  0x1E6B, /*U+1E6A*/ /*LATIN CAPITAL LETTER T WITH DOT ABOVE*/
+  0x1E6B, /*U+1E6B*/ /**/
+  0x1E6D, /*U+1E6C*/ /*LATIN CAPITAL LETTER T WITH DOT BELOW*/
+  0x1E6D, /*U+1E6D*/ /**/
+  0x1E6F, /*U+1E6E*/ /*LATIN CAPITAL LETTER T WITH LINE BELOW*/
+  0x1E6F, /*U+1E6F*/ /**/
+  0x1E71, /*U+1E70*/ /*LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW*/
+  0x1E71, /*U+1E71*/ /**/
+  0x1E73, /*U+1E72*/ /*LATIN CAPITAL LETTER U WITH DIAERESIS BELOW*/
+  0x1E73, /*U+1E73*/ /**/
+  0x1E75, /*U+1E74*/ /*LATIN CAPITAL LETTER U WITH TILDE BELOW*/
+  0x1E75, /*U+1E75*/ /**/
+  0x1E77, /*U+1E76*/ /*LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW*/
+  0x1E77, /*U+1E77*/ /**/
+  0x1E79, /*U+1E78*/ /*LATIN CAPITAL LETTER U WITH TILDE AND ACUTE*/
+  0x1E79, /*U+1E79*/ /**/
+  0x1E7B, /*U+1E7A*/ /*LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS*/
+  0x1E7B, /*U+1E7B*/ /**/
+  0x1E7D, /*U+1E7C*/ /*LATIN CAPITAL LETTER V WITH TILDE*/
+  0x1E7D, /*U+1E7D*/ /**/
+  0x1E7F, /*U+1E7E*/ /*LATIN CAPITAL LETTER V WITH DOT BELOW*/
+  0x1E7F, /*U+1E7F*/ /**/
+  0x1E81, /*U+1E80*/ /*LATIN CAPITAL LETTER W WITH GRAVE*/
+  0x1E81, /*U+1E81*/ /**/
+  0x1E83, /*U+1E82*/ /*LATIN CAPITAL LETTER W WITH ACUTE*/
+  0x1E83, /*U+1E83*/ /**/
+  0x1E85, /*U+1E84*/ /*LATIN CAPITAL LETTER W WITH DIAERESIS*/
+  0x1E85, /*U+1E85*/ /**/
+  0x1E87, /*U+1E86*/ /*LATIN CAPITAL LETTER W WITH DOT ABOVE*/
+  0x1E87, /*U+1E87*/ /**/
+  0x1E89, /*U+1E88*/ /*LATIN CAPITAL LETTER W WITH DOT BELOW*/
+  0x1E89, /*U+1E89*/ /**/
+  0x1E8B, /*U+1E8A*/ /*LATIN CAPITAL LETTER X WITH DOT ABOVE*/
+  0x1E8B, /*U+1E8B*/ /**/
+  0x1E8D, /*U+1E8C*/ /*LATIN CAPITAL LETTER X WITH DIAERESIS*/
+  0x1E8D, /*U+1E8D*/ /**/
+  0x1E8F, /*U+1E8E*/ /*LATIN CAPITAL LETTER Y WITH DOT ABOVE*/
+  0x1E8F, /*U+1E8F*/ /**/
+  0x1E91, /*U+1E90*/ /*LATIN CAPITAL LETTER Z WITH CIRCUMFLEX*/
+  0x1E91, /*U+1E91*/ /**/
+  0x1E93, /*U+1E92*/ /*LATIN CAPITAL LETTER Z WITH DOT BELOW*/
+  0x1E93, /*U+1E93*/ /**/
+  0x1E95, /*U+1E94*/ /*LATIN CAPITAL LETTER Z WITH LINE BELOW*/
+  0x1E95, /*U+1E95*/ /**/
+  0x1E96, /*U+1E96*/ /**/
+  0x1E97, /*U+1E97*/ /**/
+  0x1E98, /*U+1E98*/ /**/
+  0x1E99, /*U+1E99*/ /**/
+  0x1E9A, /*U+1E9A*/ /**/
+  0x1E9B, /*U+1E9B*/ /**/
+  0x1E9C, /*U+1E9C*/ /**/
+  0x1E9D, /*U+1E9D*/ /**/
+  0x00DF, /*U+1E9E*/ /*LATIN CAPITAL LETTER SHARP S*/
+  0x1E9F, /*U+1E9F*/ /**/
+  0x1EA1, /*U+1EA0*/ /*LATIN CAPITAL LETTER A WITH DOT BELOW*/
+  0x1EA1, /*U+1EA1*/ /**/
+  0x1EA3, /*U+1EA2*/ /*LATIN CAPITAL LETTER A WITH HOOK ABOVE*/
+  0x1EA3, /*U+1EA3*/ /**/
+  0x1EA5, /*U+1EA4*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE*/
+  0x1EA5, /*U+1EA5*/ /**/
+  0x1EA7, /*U+1EA6*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE*/
+  0x1EA7, /*U+1EA7*/ /**/
+  0x1EA9, /*U+1EA8*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1EA9, /*U+1EA9*/ /**/
+  0x1EAB, /*U+1EAA*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE*/
+  0x1EAB, /*U+1EAB*/ /**/
+  0x1EAD, /*U+1EAC*/ /*LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1EAD, /*U+1EAD*/ /**/
+  0x1EAF, /*U+1EAE*/ /*LATIN CAPITAL LETTER A WITH BREVE AND ACUTE*/
+  0x1EAF, /*U+1EAF*/ /**/
+  0x1EB1, /*U+1EB0*/ /*LATIN CAPITAL LETTER A WITH BREVE AND GRAVE*/
+  0x1EB1, /*U+1EB1*/ /**/
+  0x1EB3, /*U+1EB2*/ /*LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE*/
+  0x1EB3, /*U+1EB3*/ /**/
+  0x1EB5, /*U+1EB4*/ /*LATIN CAPITAL LETTER A WITH BREVE AND TILDE*/
+  0x1EB5, /*U+1EB5*/ /**/
+  0x1EB7, /*U+1EB6*/ /*LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW*/
+  0x1EB7, /*U+1EB7*/ /**/
+  0x1EB9, /*U+1EB8*/ /*LATIN CAPITAL LETTER E WITH DOT BELOW*/
+  0x1EB9, /*U+1EB9*/ /**/
+  0x1EBB, /*U+1EBA*/ /*LATIN CAPITAL LETTER E WITH HOOK ABOVE*/
+  0x1EBB, /*U+1EBB*/ /**/
+  0x1EBD, /*U+1EBC*/ /*LATIN CAPITAL LETTER E WITH TILDE*/
+  0x1EBD, /*U+1EBD*/ /**/
+  0x1EBF, /*U+1EBE*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE*/
+  0x1EBF, /*U+1EBF*/ /**/
+  0x1EC1, /*U+1EC0*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE*/
+  0x1EC1, /*U+1EC1*/ /**/
+  0x1EC3, /*U+1EC2*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1EC3, /*U+1EC3*/ /**/
+  0x1EC5, /*U+1EC4*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE*/
+  0x1EC5, /*U+1EC5*/ /**/
+  0x1EC7, /*U+1EC6*/ /*LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1EC7, /*U+1EC7*/ /**/
+  0x1EC9, /*U+1EC8*/ /*LATIN CAPITAL LETTER I WITH HOOK ABOVE*/
+  0x1EC9, /*U+1EC9*/ /**/
+  0x1ECB, /*U+1ECA*/ /*LATIN CAPITAL LETTER I WITH DOT BELOW*/
+  0x1ECB, /*U+1ECB*/ /**/
+  0x1ECD, /*U+1ECC*/ /*LATIN CAPITAL LETTER O WITH DOT BELOW*/
+  0x1ECD, /*U+1ECD*/ /**/
+  0x1ECF, /*U+1ECE*/ /*LATIN CAPITAL LETTER O WITH HOOK ABOVE*/
+  0x1ECF, /*U+1ECF*/ /**/
+  0x1ED1, /*U+1ED0*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE*/
+  0x1ED1, /*U+1ED1*/ /**/
+  0x1ED3, /*U+1ED2*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE*/
+  0x1ED3, /*U+1ED3*/ /**/
+  0x1ED5, /*U+1ED4*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE*/
+  0x1ED5, /*U+1ED5*/ /**/
+  0x1ED7, /*U+1ED6*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE*/
+  0x1ED7, /*U+1ED7*/ /**/
+  0x1ED9, /*U+1ED8*/ /*LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW*/
+  0x1ED9, /*U+1ED9*/ /**/
+  0x1EDB, /*U+1EDA*/ /*LATIN CAPITAL LETTER O WITH HORN AND ACUTE*/
+  0x1EDB, /*U+1EDB*/ /**/
+  0x1EDD, /*U+1EDC*/ /*LATIN CAPITAL LETTER O WITH HORN AND GRAVE*/
+  0x1EDD, /*U+1EDD*/ /**/
+  0x1EDF, /*U+1EDE*/ /*LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE*/
+  0x1EDF, /*U+1EDF*/ /**/
+  0x1EE1, /*U+1EE0*/ /*LATIN CAPITAL LETTER O WITH HORN AND TILDE*/
+  0x1EE1, /*U+1EE1*/ /**/
+  0x1EE3, /*U+1EE2*/ /*LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW*/
+  0x1EE3, /*U+1EE3*/ /**/
+  0x1EE5, /*U+1EE4*/ /*LATIN CAPITAL LETTER U WITH DOT BELOW*/
+  0x1EE5, /*U+1EE5*/ /**/
+  0x1EE7, /*U+1EE6*/ /*LATIN CAPITAL LETTER U WITH HOOK ABOVE*/
+  0x1EE7, /*U+1EE7*/ /**/
+  0x1EE9, /*U+1EE8*/ /*LATIN CAPITAL LETTER U WITH HORN AND ACUTE*/
+  0x1EE9, /*U+1EE9*/ /**/
+  0x1EEB, /*U+1EEA*/ /*LATIN CAPITAL LETTER U WITH HORN AND GRAVE*/
+  0x1EEB, /*U+1EEB*/ /**/
+  0x1EED, /*U+1EEC*/ /*LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE*/
+  0x1EED, /*U+1EED*/ /**/
+  0x1EEF, /*U+1EEE*/ /*LATIN CAPITAL LETTER U WITH HORN AND TILDE*/
+  0x1EEF, /*U+1EEF*/ /**/
+  0x1EF1, /*U+1EF0*/ /*LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW*/
+  0x1EF1, /*U+1EF1*/ /**/
+  0x1EF3, /*U+1EF2*/ /*LATIN CAPITAL LETTER Y WITH GRAVE*/
+  0x1EF3, /*U+1EF3*/ /**/
+  0x1EF5, /*U+1EF4*/ /*LATIN CAPITAL LETTER Y WITH DOT BELOW*/
+  0x1EF5, /*U+1EF5*/ /**/
+  0x1EF7, /*U+1EF6*/ /*LATIN CAPITAL LETTER Y WITH HOOK ABOVE*/
+  0x1EF7, /*U+1EF7*/ /**/
+  0x1EF9, /*U+1EF8*/ /*LATIN CAPITAL LETTER Y WITH TILDE*/
+  0x1EF9, /*U+1EF9*/ /**/
+  0x1EFB, /*U+1EFA*/ /*LATIN CAPITAL LETTER MIDDLE-WELSH LL*/
+  0x1EFB, /*U+1EFB*/ /**/
+  0x1EFD, /*U+1EFC*/ /*LATIN CAPITAL LETTER MIDDLE-WELSH V*/
+  0x1EFD, /*U+1EFD*/ /**/
+  0x1EFF, /*U+1EFE*/ /*LATIN CAPITAL LETTER Y WITH LOOP*/
+  0x1EFF, /*U+1EFF*/ /**/
+  0x1F00, /*U+1F00*/ /**/
+  0x1F01, /*U+1F01*/ /**/
+  0x1F02, /*U+1F02*/ /**/
+  0x1F03, /*U+1F03*/ /**/
+  0x1F04, /*U+1F04*/ /**/
+  0x1F05, /*U+1F05*/ /**/
+  0x1F06, /*U+1F06*/ /**/
+  0x1F07, /*U+1F07*/ /**/
+  0x1F00, /*U+1F08*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI*/
+  0x1F01, /*U+1F09*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA*/
+  0x1F02, /*U+1F0A*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA*/
+  0x1F03, /*U+1F0B*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA*/
+  0x1F04, /*U+1F0C*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA*/
+  0x1F05, /*U+1F0D*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA*/
+  0x1F06, /*U+1F0E*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI*/
+  0x1F07, /*U+1F0F*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI*/
+  0x1F10, /*U+1F10*/ /**/
+  0x1F11, /*U+1F11*/ /**/
+  0x1F12, /*U+1F12*/ /**/
+  0x1F13, /*U+1F13*/ /**/
+  0x1F14, /*U+1F14*/ /**/
+  0x1F15, /*U+1F15*/ /**/
+  0x1F16, /*U+1F16*/ /**/
+  0x1F17, /*U+1F17*/ /**/
+  0x1F10, /*U+1F18*/ /*GREEK CAPITAL LETTER EPSILON WITH PSILI*/
+  0x1F11, /*U+1F19*/ /*GREEK CAPITAL LETTER EPSILON WITH DASIA*/
+  0x1F12, /*U+1F1A*/ /*GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA*/
+  0x1F13, /*U+1F1B*/ /*GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA*/
+  0x1F14, /*U+1F1C*/ /*GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA*/
+  0x1F15, /*U+1F1D*/ /*GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA*/
+  0x1F1E, /*U+1F1E*/ /**/
+  0x1F1F, /*U+1F1F*/ /**/
+  0x1F20, /*U+1F20*/ /**/
+  0x1F21, /*U+1F21*/ /**/
+  0x1F22, /*U+1F22*/ /**/
+  0x1F23, /*U+1F23*/ /**/
+  0x1F24, /*U+1F24*/ /**/
+  0x1F25, /*U+1F25*/ /**/
+  0x1F26, /*U+1F26*/ /**/
+  0x1F27, /*U+1F27*/ /**/
+  0x1F20, /*U+1F28*/ /*GREEK CAPITAL LETTER ETA WITH PSILI*/
+  0x1F21, /*U+1F29*/ /*GREEK CAPITAL LETTER ETA WITH DASIA*/
+  0x1F22, /*U+1F2A*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA*/
+  0x1F23, /*U+1F2B*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA*/
+  0x1F24, /*U+1F2C*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA*/
+  0x1F25, /*U+1F2D*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA*/
+  0x1F26, /*U+1F2E*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI*/
+  0x1F27, /*U+1F2F*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI*/
+  0x1F30, /*U+1F30*/ /**/
+  0x1F31, /*U+1F31*/ /**/
+  0x1F32, /*U+1F32*/ /**/
+  0x1F33, /*U+1F33*/ /**/
+  0x1F34, /*U+1F34*/ /**/
+  0x1F35, /*U+1F35*/ /**/
+  0x1F36, /*U+1F36*/ /**/
+  0x1F37, /*U+1F37*/ /**/
+  0x1F30, /*U+1F38*/ /*GREEK CAPITAL LETTER IOTA WITH PSILI*/
+  0x1F31, /*U+1F39*/ /*GREEK CAPITAL LETTER IOTA WITH DASIA*/
+  0x1F32, /*U+1F3A*/ /*GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA*/
+  0x1F33, /*U+1F3B*/ /*GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA*/
+  0x1F34, /*U+1F3C*/ /*GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA*/
+  0x1F35, /*U+1F3D*/ /*GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA*/
+  0x1F36, /*U+1F3E*/ /*GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI*/
+  0x1F37, /*U+1F3F*/ /*GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI*/
+  0x1F40, /*U+1F40*/ /**/
+  0x1F41, /*U+1F41*/ /**/
+  0x1F42, /*U+1F42*/ /**/
+  0x1F43, /*U+1F43*/ /**/
+  0x1F44, /*U+1F44*/ /**/
+  0x1F45, /*U+1F45*/ /**/
+  0x1F46, /*U+1F46*/ /**/
+  0x1F47, /*U+1F47*/ /**/
+  0x1F40, /*U+1F48*/ /*GREEK CAPITAL LETTER OMICRON WITH PSILI*/
+  0x1F41, /*U+1F49*/ /*GREEK CAPITAL LETTER OMICRON WITH DASIA*/
+  0x1F42, /*U+1F4A*/ /*GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA*/
+  0x1F43, /*U+1F4B*/ /*GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA*/
+  0x1F44, /*U+1F4C*/ /*GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA*/
+  0x1F45, /*U+1F4D*/ /*GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA*/
+  0x1F4E, /*U+1F4E*/ /**/
+  0x1F4F, /*U+1F4F*/ /**/
+  0x1F50, /*U+1F50*/ /**/
+  0x1F51, /*U+1F51*/ /**/
+  0x1F52, /*U+1F52*/ /**/
+  0x1F53, /*U+1F53*/ /**/
+  0x1F54, /*U+1F54*/ /**/
+  0x1F55, /*U+1F55*/ /**/
+  0x1F56, /*U+1F56*/ /**/
+  0x1F57, /*U+1F57*/ /**/
+  0x1F58, /*U+1F58*/ /**/
+  0x1F51, /*U+1F59*/ /*GREEK CAPITAL LETTER UPSILON WITH DASIA*/
+  0x1F5A, /*U+1F5A*/ /**/
+  0x1F53, /*U+1F5B*/ /*GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA*/
+  0x1F5C, /*U+1F5C*/ /**/
+  0x1F55, /*U+1F5D*/ /*GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA*/
+  0x1F5E, /*U+1F5E*/ /**/
+  0x1F57, /*U+1F5F*/ /*GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI*/
+  0x1F60, /*U+1F60*/ /**/
+  0x1F61, /*U+1F61*/ /**/
+  0x1F62, /*U+1F62*/ /**/
+  0x1F63, /*U+1F63*/ /**/
+  0x1F64, /*U+1F64*/ /**/
+  0x1F65, /*U+1F65*/ /**/
+  0x1F66, /*U+1F66*/ /**/
+  0x1F67, /*U+1F67*/ /**/
+  0x1F60, /*U+1F68*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI*/
+  0x1F61, /*U+1F69*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA*/
+  0x1F62, /*U+1F6A*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA*/
+  0x1F63, /*U+1F6B*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA*/
+  0x1F64, /*U+1F6C*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA*/
+  0x1F65, /*U+1F6D*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA*/
+  0x1F66, /*U+1F6E*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI*/
+  0x1F67, /*U+1F6F*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI*/
+  0x1F70, /*U+1F70*/ /**/
+  0x1F71, /*U+1F71*/ /**/
+  0x1F72, /*U+1F72*/ /**/
+  0x1F73, /*U+1F73*/ /**/
+  0x1F74, /*U+1F74*/ /**/
+  0x1F75, /*U+1F75*/ /**/
+  0x1F76, /*U+1F76*/ /**/
+  0x1F77, /*U+1F77*/ /**/
+  0x1F78, /*U+1F78*/ /**/
+  0x1F79, /*U+1F79*/ /**/
+  0x1F7A, /*U+1F7A*/ /**/
+  0x1F7B, /*U+1F7B*/ /**/
+  0x1F7C, /*U+1F7C*/ /**/
+  0x1F7D, /*U+1F7D*/ /**/
+  0x1F7E, /*U+1F7E*/ /**/
+  0x1F7F, /*U+1F7F*/ /**/
+  0x1F80, /*U+1F80*/ /**/
+  0x1F81, /*U+1F81*/ /**/
+  0x1F82, /*U+1F82*/ /**/
+  0x1F83, /*U+1F83*/ /**/
+  0x1F84, /*U+1F84*/ /**/
+  0x1F85, /*U+1F85*/ /**/
+  0x1F86, /*U+1F86*/ /**/
+  0x1F87, /*U+1F87*/ /**/
+  0x1F80, /*U+1F88*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI*/
+  0x1F81, /*U+1F89*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI*/
+  0x1F82, /*U+1F8A*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/
+  0x1F83, /*U+1F8B*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/
+  0x1F84, /*U+1F8C*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/
+  0x1F85, /*U+1F8D*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/
+  0x1F86, /*U+1F8E*/ /*GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1F87, /*U+1F8F*/ /*GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1F90, /*U+1F90*/ /**/
+  0x1F91, /*U+1F91*/ /**/
+  0x1F92, /*U+1F92*/ /**/
+  0x1F93, /*U+1F93*/ /**/
+  0x1F94, /*U+1F94*/ /**/
+  0x1F95, /*U+1F95*/ /**/
+  0x1F96, /*U+1F96*/ /**/
+  0x1F97, /*U+1F97*/ /**/
+  0x1F90, /*U+1F98*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI*/
+  0x1F91, /*U+1F99*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI*/
+  0x1F92, /*U+1F9A*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/
+  0x1F93, /*U+1F9B*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/
+  0x1F94, /*U+1F9C*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/
+  0x1F95, /*U+1F9D*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/
+  0x1F96, /*U+1F9E*/ /*GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1F97, /*U+1F9F*/ /*GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1FA0, /*U+1FA0*/ /**/
+  0x1FA1, /*U+1FA1*/ /**/
+  0x1FA2, /*U+1FA2*/ /**/
+  0x1FA3, /*U+1FA3*/ /**/
+  0x1FA4, /*U+1FA4*/ /**/
+  0x1FA5, /*U+1FA5*/ /**/
+  0x1FA6, /*U+1FA6*/ /**/
+  0x1FA7, /*U+1FA7*/ /**/
+  0x1FA0, /*U+1FA8*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI*/
+  0x1FA1, /*U+1FA9*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI*/
+  0x1FA2, /*U+1FAA*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI*/
+  0x1FA3, /*U+1FAB*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI*/
+  0x1FA4, /*U+1FAC*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI*/
+  0x1FA5, /*U+1FAD*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI*/
+  0x1FA6, /*U+1FAE*/ /*GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1FA7, /*U+1FAF*/ /*GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI*/
+  0x1FB0, /*U+1FB0*/ /**/
+  0x1FB1, /*U+1FB1*/ /**/
+  0x1FB2, /*U+1FB2*/ /**/
+  0x1FB3, /*U+1FB3*/ /**/
+  0x1FB4, /*U+1FB4*/ /**/
+  0x1FB5, /*U+1FB5*/ /**/
+  0x1FB6, /*U+1FB6*/ /**/
+  0x1FB7, /*U+1FB7*/ /**/
+  0x1FB0, /*U+1FB8*/ /*GREEK CAPITAL LETTER ALPHA WITH VRACHY*/
+  0x1FB1, /*U+1FB9*/ /*GREEK CAPITAL LETTER ALPHA WITH MACRON*/
+  0x1F70, /*U+1FBA*/ /*GREEK CAPITAL LETTER ALPHA WITH VARIA*/
+  0x1F71, /*U+1FBB*/ /*GREEK CAPITAL LETTER ALPHA WITH OXIA*/
+  0x1FB3, /*U+1FBC*/ /*GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI*/
+  0x1FBD, /*U+1FBD*/ /**/
+  0x1FBE, /*U+1FBE*/ /**/
+  0x1FBF, /*U+1FBF*/ /**/
+  0x1FC0, /*U+1FC0*/ /**/
+  0x1FC1, /*U+1FC1*/ /**/
+  0x1FC2, /*U+1FC2*/ /**/
+  0x1FC3, /*U+1FC3*/ /**/
+  0x1FC4, /*U+1FC4*/ /**/
+  0x1FC5, /*U+1FC5*/ /**/
+  0x1FC6, /*U+1FC6*/ /**/
+  0x1FC7, /*U+1FC7*/ /**/
+  0x1F72, /*U+1FC8*/ /*GREEK CAPITAL LETTER EPSILON WITH VARIA*/
+  0x1F73, /*U+1FC9*/ /*GREEK CAPITAL LETTER EPSILON WITH OXIA*/
+  0x1F74, /*U+1FCA*/ /*GREEK CAPITAL LETTER ETA WITH VARIA*/
+  0x1F75, /*U+1FCB*/ /*GREEK CAPITAL LETTER ETA WITH OXIA*/
+  0x1FC3, /*U+1FCC*/ /*GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI*/
+  0x1FCD, /*U+1FCD*/ /**/
+  0x1FCE, /*U+1FCE*/ /**/
+  0x1FCF, /*U+1FCF*/ /**/
+  0x1FD0, /*U+1FD0*/ /**/
+  0x1FD1, /*U+1FD1*/ /**/
+  0x1FD2, /*U+1FD2*/ /**/
+  0x1FD3, /*U+1FD3*/ /**/
+  0x1FD4, /*U+1FD4*/ /**/
+  0x1FD5, /*U+1FD5*/ /**/
+  0x1FD6, /*U+1FD6*/ /**/
+  0x1FD7, /*U+1FD7*/ /**/
+  0x1FD0, /*U+1FD8*/ /*GREEK CAPITAL LETTER IOTA WITH VRACHY*/
+  0x1FD1, /*U+1FD9*/ /*GREEK CAPITAL LETTER IOTA WITH MACRON*/
+  0x1F76, /*U+1FDA*/ /*GREEK CAPITAL LETTER IOTA WITH VARIA*/
+  0x1F77, /*U+1FDB*/ /*GREEK CAPITAL LETTER IOTA WITH OXIA*/
+  0x1FDC, /*U+1FDC*/ /**/
+  0x1FDD, /*U+1FDD*/ /**/
+  0x1FDE, /*U+1FDE*/ /**/
+  0x1FDF, /*U+1FDF*/ /**/
+  0x1FE0, /*U+1FE0*/ /**/
+  0x1FE1, /*U+1FE1*/ /**/
+  0x1FE2, /*U+1FE2*/ /**/
+  0x1FE3, /*U+1FE3*/ /**/
+  0x1FE4, /*U+1FE4*/ /**/
+  0x1FE5, /*U+1FE5*/ /**/
+  0x1FE6, /*U+1FE6*/ /**/
+  0x1FE7, /*U+1FE7*/ /**/
+  0x1FE0, /*U+1FE8*/ /*GREEK CAPITAL LETTER UPSILON WITH VRACHY*/
+  0x1FE1, /*U+1FE9*/ /*GREEK CAPITAL LETTER UPSILON WITH MACRON*/
+  0x1F7A, /*U+1FEA*/ /*GREEK CAPITAL LETTER UPSILON WITH VARIA*/
+  0x1F7B, /*U+1FEB*/ /*GREEK CAPITAL LETTER UPSILON WITH OXIA*/
+  0x1FE5, /*U+1FEC*/ /*GREEK CAPITAL LETTER RHO WITH DASIA*/
+  0x1FED, /*U+1FED*/ /**/
+  0x1FEE, /*U+1FEE*/ /**/
+  0x1FEF, /*U+1FEF*/ /**/
+  0x1FF0, /*U+1FF0*/ /**/
+  0x1FF1, /*U+1FF1*/ /**/
+  0x1FF2, /*U+1FF2*/ /**/
+  0x1FF3, /*U+1FF3*/ /**/
+  0x1FF4, /*U+1FF4*/ /**/
+  0x1FF5, /*U+1FF5*/ /**/
+  0x1FF6, /*U+1FF6*/ /**/
+  0x1FF7, /*U+1FF7*/ /**/
+  0x1F78, /*U+1FF8*/ /*GREEK CAPITAL LETTER OMICRON WITH VARIA*/
+  0x1F79, /*U+1FF9*/ /*GREEK CAPITAL LETTER OMICRON WITH OXIA*/
+  0x1F7C, /*U+1FFA*/ /*GREEK CAPITAL LETTER OMEGA WITH VARIA*/
+  0x1F7D, /*U+1FFB*/ /*GREEK CAPITAL LETTER OMEGA WITH OXIA*/
+  0x1FF3, /*U+1FFC*/ /*GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI*/
+  0x1FFD, /*U+1FFD*/ /**/
+  0x1FFE, /*U+1FFE*/ /**/
+  0x1FFF, /*U+1FFF*/ /**/
+};
+
+static const u_int16_t lower_table_6[192] = {
+  0x2100, /*U+2100*/ /**/
+  0x2101, /*U+2101*/ /**/
+  0x2102, /*U+2102*/ /**/
+  0x2103, /*U+2103*/ /**/
+  0x2104, /*U+2104*/ /**/
+  0x2105, /*U+2105*/ /**/
+  0x2106, /*U+2106*/ /**/
+  0x2107, /*U+2107*/ /**/
+  0x2108, /*U+2108*/ /**/
+  0x2109, /*U+2109*/ /**/
+  0x210A, /*U+210A*/ /**/
+  0x210B, /*U+210B*/ /**/
+  0x210C, /*U+210C*/ /**/
+  0x210D, /*U+210D*/ /**/
+  0x210E, /*U+210E*/ /**/
+  0x210F, /*U+210F*/ /**/
+  0x2110, /*U+2110*/ /**/
+  0x2111, /*U+2111*/ /**/
+  0x2112, /*U+2112*/ /**/
+  0x2113, /*U+2113*/ /**/
+  0x2114, /*U+2114*/ /**/
+  0x2115, /*U+2115*/ /**/
+  0x2116, /*U+2116*/ /**/
+  0x2117, /*U+2117*/ /**/
+  0x2118, /*U+2118*/ /**/
+  0x2119, /*U+2119*/ /**/
+  0x211A, /*U+211A*/ /**/
+  0x211B, /*U+211B*/ /**/
+  0x211C, /*U+211C*/ /**/
+  0x211D, /*U+211D*/ /**/
+  0x211E, /*U+211E*/ /**/
+  0x211F, /*U+211F*/ /**/
+  0x2120, /*U+2120*/ /**/
+  0x2121, /*U+2121*/ /**/
+  0x2122, /*U+2122*/ /**/
+  0x2123, /*U+2123*/ /**/
+  0x2124, /*U+2124*/ /**/
+  0x2125, /*U+2125*/ /**/
+  0x03C9, /*U+2126*/ /*OHM SIGN*/
+  0x2127, /*U+2127*/ /**/
+  0x2128, /*U+2128*/ /**/
+  0x2129, /*U+2129*/ /**/
+  0x006B, /*U+212A*/ /*KELVIN SIGN*/
+  0x00E5, /*U+212B*/ /*ANGSTROM SIGN*/
+  0x212C, /*U+212C*/ /**/
+  0x212D, /*U+212D*/ /**/
+  0x212E, /*U+212E*/ /**/
+  0x212F, /*U+212F*/ /**/
+  0x2130, /*U+2130*/ /**/
+  0x2131, /*U+2131*/ /**/
+  0x214E, /*U+2132*/ /*TURNED CAPITAL F*/
+  0x2133, /*U+2133*/ /**/
+  0x2134, /*U+2134*/ /**/
+  0x2135, /*U+2135*/ /**/
+  0x2136, /*U+2136*/ /**/
+  0x2137, /*U+2137*/ /**/
+  0x2138, /*U+2138*/ /**/
+  0x2139, /*U+2139*/ /**/
+  0x213A, /*U+213A*/ /**/
+  0x213B, /*U+213B*/ /**/
+  0x213C, /*U+213C*/ /**/
+  0x213D, /*U+213D*/ /**/
+  0x213E, /*U+213E*/ /**/
+  0x213F, /*U+213F*/ /**/
+  0x2140, /*U+2140*/ /**/
+  0x2141, /*U+2141*/ /**/
+  0x2142, /*U+2142*/ /**/
+  0x2143, /*U+2143*/ /**/
+  0x2144, /*U+2144*/ /**/
+  0x2145, /*U+2145*/ /**/
+  0x2146, /*U+2146*/ /**/
+  0x2147, /*U+2147*/ /**/
+  0x2148, /*U+2148*/ /**/
+  0x2149, /*U+2149*/ /**/
+  0x214A, /*U+214A*/ /**/
+  0x214B, /*U+214B*/ /**/
+  0x214C, /*U+214C*/ /**/
+  0x214D, /*U+214D*/ /**/
+  0x214E, /*U+214E*/ /**/
+  0x214F, /*U+214F*/ /**/
+  0x2150, /*U+2150*/ /**/
+  0x2151, /*U+2151*/ /**/
+  0x2152, /*U+2152*/ /**/
+  0x2153, /*U+2153*/ /**/
+  0x2154, /*U+2154*/ /**/
+  0x2155, /*U+2155*/ /**/
+  0x2156, /*U+2156*/ /**/
+  0x2157, /*U+2157*/ /**/
+  0x2158, /*U+2158*/ /**/
+  0x2159, /*U+2159*/ /**/
+  0x215A, /*U+215A*/ /**/
+  0x215B, /*U+215B*/ /**/
+  0x215C, /*U+215C*/ /**/
+  0x215D, /*U+215D*/ /**/
+  0x215E, /*U+215E*/ /**/
+  0x215F, /*U+215F*/ /**/
+  0x2170, /*U+2160*/ /*ROMAN NUMERAL ONE*/
+  0x2171, /*U+2161*/ /*ROMAN NUMERAL TWO*/
+  0x2172, /*U+2162*/ /*ROMAN NUMERAL THREE*/
+  0x2173, /*U+2163*/ /*ROMAN NUMERAL FOUR*/
+  0x2174, /*U+2164*/ /*ROMAN NUMERAL FIVE*/
+  0x2175, /*U+2165*/ /*ROMAN NUMERAL SIX*/
+  0x2176, /*U+2166*/ /*ROMAN NUMERAL SEVEN*/
+  0x2177, /*U+2167*/ /*ROMAN NUMERAL EIGHT*/
+  0x2178, /*U+2168*/ /*ROMAN NUMERAL NINE*/
+  0x2179, /*U+2169*/ /*ROMAN NUMERAL TEN*/
+  0x217A, /*U+216A*/ /*ROMAN NUMERAL ELEVEN*/
+  0x217B, /*U+216B*/ /*ROMAN NUMERAL TWELVE*/
+  0x217C, /*U+216C*/ /*ROMAN NUMERAL FIFTY*/
+  0x217D, /*U+216D*/ /*ROMAN NUMERAL ONE HUNDRED*/
+  0x217E, /*U+216E*/ /*ROMAN NUMERAL FIVE HUNDRED*/
+  0x217F, /*U+216F*/ /*ROMAN NUMERAL ONE THOUSAND*/
+  0x2170, /*U+2170*/ /**/
+  0x2171, /*U+2171*/ /**/
+  0x2172, /*U+2172*/ /**/
+  0x2173, /*U+2173*/ /**/
+  0x2174, /*U+2174*/ /**/
+  0x2175, /*U+2175*/ /**/
+  0x2176, /*U+2176*/ /**/
+  0x2177, /*U+2177*/ /**/
+  0x2178, /*U+2178*/ /**/
+  0x2179, /*U+2179*/ /**/
+  0x217A, /*U+217A*/ /**/
+  0x217B, /*U+217B*/ /**/
+  0x217C, /*U+217C*/ /**/
+  0x217D, /*U+217D*/ /**/
+  0x217E, /*U+217E*/ /**/
+  0x217F, /*U+217F*/ /**/
+  0x2180, /*U+2180*/ /**/
+  0x2181, /*U+2181*/ /**/
+  0x2182, /*U+2182*/ /**/
+  0x2184, /*U+2183*/ /*ROMAN NUMERAL REVERSED ONE HUNDRED*/
+  0x2184, /*U+2184*/ /**/
+  0x2185, /*U+2185*/ /**/
+  0x2186, /*U+2186*/ /**/
+  0x2187, /*U+2187*/ /**/
+  0x2188, /*U+2188*/ /**/
+  0x2189, /*U+2189*/ /**/
+  0x218A, /*U+218A*/ /**/
+  0x218B, /*U+218B*/ /**/
+  0x218C, /*U+218C*/ /**/
+  0x218D, /*U+218D*/ /**/
+  0x218E, /*U+218E*/ /**/
+  0x218F, /*U+218F*/ /**/
+  0x2190, /*U+2190*/ /**/
+  0x2191, /*U+2191*/ /**/
+  0x2192, /*U+2192*/ /**/
+  0x2193, /*U+2193*/ /**/
+  0x2194, /*U+2194*/ /**/
+  0x2195, /*U+2195*/ /**/
+  0x2196, /*U+2196*/ /**/
+  0x2197, /*U+2197*/ /**/
+  0x2198, /*U+2198*/ /**/
+  0x2199, /*U+2199*/ /**/
+  0x219A, /*U+219A*/ /**/
+  0x219B, /*U+219B*/ /**/
+  0x219C, /*U+219C*/ /**/
+  0x219D, /*U+219D*/ /**/
+  0x219E, /*U+219E*/ /**/
+  0x219F, /*U+219F*/ /**/
+  0x21A0, /*U+21A0*/ /**/
+  0x21A1, /*U+21A1*/ /**/
+  0x21A2, /*U+21A2*/ /**/
+  0x21A3, /*U+21A3*/ /**/
+  0x21A4, /*U+21A4*/ /**/
+  0x21A5, /*U+21A5*/ /**/
+  0x21A6, /*U+21A6*/ /**/
+  0x21A7, /*U+21A7*/ /**/
+  0x21A8, /*U+21A8*/ /**/
+  0x21A9, /*U+21A9*/ /**/
+  0x21AA, /*U+21AA*/ /**/
+  0x21AB, /*U+21AB*/ /**/
+  0x21AC, /*U+21AC*/ /**/
+  0x21AD, /*U+21AD*/ /**/
+  0x21AE, /*U+21AE*/ /**/
+  0x21AF, /*U+21AF*/ /**/
+  0x21B0, /*U+21B0*/ /**/
+  0x21B1, /*U+21B1*/ /**/
+  0x21B2, /*U+21B2*/ /**/
+  0x21B3, /*U+21B3*/ /**/
+  0x21B4, /*U+21B4*/ /**/
+  0x21B5, /*U+21B5*/ /**/
+  0x21B6, /*U+21B6*/ /**/
+  0x21B7, /*U+21B7*/ /**/
+  0x21B8, /*U+21B8*/ /**/
+  0x21B9, /*U+21B9*/ /**/
+  0x21BA, /*U+21BA*/ /**/
+  0x21BB, /*U+21BB*/ /**/
+  0x21BC, /*U+21BC*/ /**/
+  0x21BD, /*U+21BD*/ /**/
+  0x21BE, /*U+21BE*/ /**/
+  0x21BF, /*U+21BF*/ /**/
+};
+
+static const u_int16_t lower_table_7[128] = {
+  0x2480, /*U+2480*/ /**/
+  0x2481, /*U+2481*/ /**/
+  0x2482, /*U+2482*/ /**/
+  0x2483, /*U+2483*/ /**/
+  0x2484, /*U+2484*/ /**/
+  0x2485, /*U+2485*/ /**/
+  0x2486, /*U+2486*/ /**/
+  0x2487, /*U+2487*/ /**/
+  0x2488, /*U+2488*/ /**/
+  0x2489, /*U+2489*/ /**/
+  0x248A, /*U+248A*/ /**/
+  0x248B, /*U+248B*/ /**/
+  0x248C, /*U+248C*/ /**/
+  0x248D, /*U+248D*/ /**/
+  0x248E, /*U+248E*/ /**/
+  0x248F, /*U+248F*/ /**/
+  0x2490, /*U+2490*/ /**/
+  0x2491, /*U+2491*/ /**/
+  0x2492, /*U+2492*/ /**/
+  0x2493, /*U+2493*/ /**/
+  0x2494, /*U+2494*/ /**/
+  0x2495, /*U+2495*/ /**/
+  0x2496, /*U+2496*/ /**/
+  0x2497, /*U+2497*/ /**/
+  0x2498, /*U+2498*/ /**/
+  0x2499, /*U+2499*/ /**/
+  0x249A, /*U+249A*/ /**/
+  0x249B, /*U+249B*/ /**/
+  0x249C, /*U+249C*/ /**/
+  0x249D, /*U+249D*/ /**/
+  0x249E, /*U+249E*/ /**/
+  0x249F, /*U+249F*/ /**/
+  0x24A0, /*U+24A0*/ /**/
+  0x24A1, /*U+24A1*/ /**/
+  0x24A2, /*U+24A2*/ /**/
+  0x24A3, /*U+24A3*/ /**/
+  0x24A4, /*U+24A4*/ /**/
+  0x24A5, /*U+24A5*/ /**/
+  0x24A6, /*U+24A6*/ /**/
+  0x24A7, /*U+24A7*/ /**/
+  0x24A8, /*U+24A8*/ /**/
+  0x24A9, /*U+24A9*/ /**/
+  0x24AA, /*U+24AA*/ /**/
+  0x24AB, /*U+24AB*/ /**/
+  0x24AC, /*U+24AC*/ /**/
+  0x24AD, /*U+24AD*/ /**/
+  0x24AE, /*U+24AE*/ /**/
+  0x24AF, /*U+24AF*/ /**/
+  0x24B0, /*U+24B0*/ /**/
+  0x24B1, /*U+24B1*/ /**/
+  0x24B2, /*U+24B2*/ /**/
+  0x24B3, /*U+24B3*/ /**/
+  0x24B4, /*U+24B4*/ /**/
+  0x24B5, /*U+24B5*/ /**/
+  0x24D0, /*U+24B6*/ /*CIRCLED LATIN CAPITAL LETTER A*/
+  0x24D1, /*U+24B7*/ /*CIRCLED LATIN CAPITAL LETTER B*/
+  0x24D2, /*U+24B8*/ /*CIRCLED LATIN CAPITAL LETTER C*/
+  0x24D3, /*U+24B9*/ /*CIRCLED LATIN CAPITAL LETTER D*/
+  0x24D4, /*U+24BA*/ /*CIRCLED LATIN CAPITAL LETTER E*/
+  0x24D5, /*U+24BB*/ /*CIRCLED LATIN CAPITAL LETTER F*/
+  0x24D6, /*U+24BC*/ /*CIRCLED LATIN CAPITAL LETTER G*/
+  0x24D7, /*U+24BD*/ /*CIRCLED LATIN CAPITAL LETTER H*/
+  0x24D8, /*U+24BE*/ /*CIRCLED LATIN CAPITAL LETTER I*/
+  0x24D9, /*U+24BF*/ /*CIRCLED LATIN CAPITAL LETTER J*/
+  0x24DA, /*U+24C0*/ /*CIRCLED LATIN CAPITAL LETTER K*/
+  0x24DB, /*U+24C1*/ /*CIRCLED LATIN CAPITAL LETTER L*/
+  0x24DC, /*U+24C2*/ /*CIRCLED LATIN CAPITAL LETTER M*/
+  0x24DD, /*U+24C3*/ /*CIRCLED LATIN CAPITAL LETTER N*/
+  0x24DE, /*U+24C4*/ /*CIRCLED LATIN CAPITAL LETTER O*/
+  0x24DF, /*U+24C5*/ /*CIRCLED LATIN CAPITAL LETTER P*/
+  0x24E0, /*U+24C6*/ /*CIRCLED LATIN CAPITAL LETTER Q*/
+  0x24E1, /*U+24C7*/ /*CIRCLED LATIN CAPITAL LETTER R*/
+  0x24E2, /*U+24C8*/ /*CIRCLED LATIN CAPITAL LETTER S*/
+  0x24E3, /*U+24C9*/ /*CIRCLED LATIN CAPITAL LETTER T*/
+  0x24E4, /*U+24CA*/ /*CIRCLED LATIN CAPITAL LETTER U*/
+  0x24E5, /*U+24CB*/ /*CIRCLED LATIN CAPITAL LETTER V*/
+  0x24E6, /*U+24CC*/ /*CIRCLED LATIN CAPITAL LETTER W*/
+  0x24E7, /*U+24CD*/ /*CIRCLED LATIN CAPITAL LETTER X*/
+  0x24E8, /*U+24CE*/ /*CIRCLED LATIN CAPITAL LETTER Y*/
+  0x24E9, /*U+24CF*/ /*CIRCLED LATIN CAPITAL LETTER Z*/
+  0x24D0, /*U+24D0*/ /**/
+  0x24D1, /*U+24D1*/ /**/
+  0x24D2, /*U+24D2*/ /**/
+  0x24D3, /*U+24D3*/ /**/
+  0x24D4, /*U+24D4*/ /**/
+  0x24D5, /*U+24D5*/ /**/
+  0x24D6, /*U+24D6*/ /**/
+  0x24D7, /*U+24D7*/ /**/
+  0x24D8, /*U+24D8*/ /**/
+  0x24D9, /*U+24D9*/ /**/
+  0x24DA, /*U+24DA*/ /**/
+  0x24DB, /*U+24DB*/ /**/
+  0x24DC, /*U+24DC*/ /**/
+  0x24DD, /*U+24DD*/ /**/
+  0x24DE, /*U+24DE*/ /**/
+  0x24DF, /*U+24DF*/ /**/
+  0x24E0, /*U+24E0*/ /**/
+  0x24E1, /*U+24E1*/ /**/
+  0x24E2, /*U+24E2*/ /**/
+  0x24E3, /*U+24E3*/ /**/
+  0x24E4, /*U+24E4*/ /**/
+  0x24E5, /*U+24E5*/ /**/
+  0x24E6, /*U+24E6*/ /**/
+  0x24E7, /*U+24E7*/ /**/
+  0x24E8, /*U+24E8*/ /**/
+  0x24E9, /*U+24E9*/ /**/
+  0x24EA, /*U+24EA*/ /**/
+  0x24EB, /*U+24EB*/ /**/
+  0x24EC, /*U+24EC*/ /**/
+  0x24ED, /*U+24ED*/ /**/
+  0x24EE, /*U+24EE*/ /**/
+  0x24EF, /*U+24EF*/ /**/
+  0x24F0, /*U+24F0*/ /**/
+  0x24F1, /*U+24F1*/ /**/
+  0x24F2, /*U+24F2*/ /**/
+  0x24F3, /*U+24F3*/ /**/
+  0x24F4, /*U+24F4*/ /**/
+  0x24F5, /*U+24F5*/ /**/
+  0x24F6, /*U+24F6*/ /**/
+  0x24F7, /*U+24F7*/ /**/
+  0x24F8, /*U+24F8*/ /**/
+  0x24F9, /*U+24F9*/ /**/
+  0x24FA, /*U+24FA*/ /**/
+  0x24FB, /*U+24FB*/ /**/
+  0x24FC, /*U+24FC*/ /**/
+  0x24FD, /*U+24FD*/ /**/
+  0x24FE, /*U+24FE*/ /**/
+  0x24FF, /*U+24FF*/ /**/
+};
+
+static const u_int16_t lower_table_8[256] = {
+  0x2C30, /*U+2C00*/ /*GLAGOLITIC CAPITAL LETTER AZU*/
+  0x2C31, /*U+2C01*/ /*GLAGOLITIC CAPITAL LETTER BUKY*/
+  0x2C32, /*U+2C02*/ /*GLAGOLITIC CAPITAL LETTER VEDE*/
+  0x2C33, /*U+2C03*/ /*GLAGOLITIC CAPITAL LETTER GLAGOLI*/
+  0x2C34, /*U+2C04*/ /*GLAGOLITIC CAPITAL LETTER DOBRO*/
+  0x2C35, /*U+2C05*/ /*GLAGOLITIC CAPITAL LETTER YESTU*/
+  0x2C36, /*U+2C06*/ /*GLAGOLITIC CAPITAL LETTER ZHIVETE*/
+  0x2C37, /*U+2C07*/ /*GLAGOLITIC CAPITAL LETTER DZELO*/
+  0x2C38, /*U+2C08*/ /*GLAGOLITIC CAPITAL LETTER ZEMLJA*/
+  0x2C39, /*U+2C09*/ /*GLAGOLITIC CAPITAL LETTER IZHE*/
+  0x2C3A, /*U+2C0A*/ /*GLAGOLITIC CAPITAL LETTER INITIAL IZHE*/
+  0x2C3B, /*U+2C0B*/ /*GLAGOLITIC CAPITAL LETTER I*/
+  0x2C3C, /*U+2C0C*/ /*GLAGOLITIC CAPITAL LETTER DJERVI*/
+  0x2C3D, /*U+2C0D*/ /*GLAGOLITIC CAPITAL LETTER KAKO*/
+  0x2C3E, /*U+2C0E*/ /*GLAGOLITIC CAPITAL LETTER LJUDIJE*/
+  0x2C3F, /*U+2C0F*/ /*GLAGOLITIC CAPITAL LETTER MYSLITE*/
+  0x2C40, /*U+2C10*/ /*GLAGOLITIC CAPITAL LETTER NASHI*/
+  0x2C41, /*U+2C11*/ /*GLAGOLITIC CAPITAL LETTER ONU*/
+  0x2C42, /*U+2C12*/ /*GLAGOLITIC CAPITAL LETTER POKOJI*/
+  0x2C43, /*U+2C13*/ /*GLAGOLITIC CAPITAL LETTER RITSI*/
+  0x2C44, /*U+2C14*/ /*GLAGOLITIC CAPITAL LETTER SLOVO*/
+  0x2C45, /*U+2C15*/ /*GLAGOLITIC CAPITAL LETTER TVRIDO*/
+  0x2C46, /*U+2C16*/ /*GLAGOLITIC CAPITAL LETTER UKU*/
+  0x2C47, /*U+2C17*/ /*GLAGOLITIC CAPITAL LETTER FRITU*/
+  0x2C48, /*U+2C18*/ /*GLAGOLITIC CAPITAL LETTER HERU*/
+  0x2C49, /*U+2C19*/ /*GLAGOLITIC CAPITAL LETTER OTU*/
+  0x2C4A, /*U+2C1A*/ /*GLAGOLITIC CAPITAL LETTER PE*/
+  0x2C4B, /*U+2C1B*/ /*GLAGOLITIC CAPITAL LETTER SHTA*/
+  0x2C4C, /*U+2C1C*/ /*GLAGOLITIC CAPITAL LETTER TSI*/
+  0x2C4D, /*U+2C1D*/ /*GLAGOLITIC CAPITAL LETTER CHRIVI*/
+  0x2C4E, /*U+2C1E*/ /*GLAGOLITIC CAPITAL LETTER SHA*/
+  0x2C4F, /*U+2C1F*/ /*GLAGOLITIC CAPITAL LETTER YERU*/
+  0x2C50, /*U+2C20*/ /*GLAGOLITIC CAPITAL LETTER YERI*/
+  0x2C51, /*U+2C21*/ /*GLAGOLITIC CAPITAL LETTER YATI*/
+  0x2C52, /*U+2C22*/ /*GLAGOLITIC CAPITAL LETTER SPIDERY HA*/
+  0x2C53, /*U+2C23*/ /*GLAGOLITIC CAPITAL LETTER YU*/
+  0x2C54, /*U+2C24*/ /*GLAGOLITIC CAPITAL LETTER SMALL YUS*/
+  0x2C55, /*U+2C25*/ /*GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL*/
+  0x2C56, /*U+2C26*/ /*GLAGOLITIC CAPITAL LETTER YO*/
+  0x2C57, /*U+2C27*/ /*GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS*/
+  0x2C58, /*U+2C28*/ /*GLAGOLITIC CAPITAL LETTER BIG YUS*/
+  0x2C59, /*U+2C29*/ /*GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS*/
+  0x2C5A, /*U+2C2A*/ /*GLAGOLITIC CAPITAL LETTER FITA*/
+  0x2C5B, /*U+2C2B*/ /*GLAGOLITIC CAPITAL LETTER IZHITSA*/
+  0x2C5C, /*U+2C2C*/ /*GLAGOLITIC CAPITAL LETTER SHTAPIC*/
+  0x2C5D, /*U+2C2D*/ /*GLAGOLITIC CAPITAL LETTER TROKUTASTI A*/
+  0x2C5E, /*U+2C2E*/ /*GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE*/
+  0x2C2F, /*U+2C2F*/ /**/
+  0x2C30, /*U+2C30*/ /**/
+  0x2C31, /*U+2C31*/ /**/
+  0x2C32, /*U+2C32*/ /**/
+  0x2C33, /*U+2C33*/ /**/
+  0x2C34, /*U+2C34*/ /**/
+  0x2C35, /*U+2C35*/ /**/
+  0x2C36, /*U+2C36*/ /**/
+  0x2C37, /*U+2C37*/ /**/
+  0x2C38, /*U+2C38*/ /**/
+  0x2C39, /*U+2C39*/ /**/
+  0x2C3A, /*U+2C3A*/ /**/
+  0x2C3B, /*U+2C3B*/ /**/
+  0x2C3C, /*U+2C3C*/ /**/
+  0x2C3D, /*U+2C3D*/ /**/
+  0x2C3E, /*U+2C3E*/ /**/
+  0x2C3F, /*U+2C3F*/ /**/
+  0x2C40, /*U+2C40*/ /**/
+  0x2C41, /*U+2C41*/ /**/
+  0x2C42, /*U+2C42*/ /**/
+  0x2C43, /*U+2C43*/ /**/
+  0x2C44, /*U+2C44*/ /**/
+  0x2C45, /*U+2C45*/ /**/
+  0x2C46, /*U+2C46*/ /**/
+  0x2C47, /*U+2C47*/ /**/
+  0x2C48, /*U+2C48*/ /**/
+  0x2C49, /*U+2C49*/ /**/
+  0x2C4A, /*U+2C4A*/ /**/
+  0x2C4B, /*U+2C4B*/ /**/
+  0x2C4C, /*U+2C4C*/ /**/
+  0x2C4D, /*U+2C4D*/ /**/
+  0x2C4E, /*U+2C4E*/ /**/
+  0x2C4F, /*U+2C4F*/ /**/
+  0x2C50, /*U+2C50*/ /**/
+  0x2C51, /*U+2C51*/ /**/
+  0x2C52, /*U+2C52*/ /**/
+  0x2C53, /*U+2C53*/ /**/
+  0x2C54, /*U+2C54*/ /**/
+  0x2C55, /*U+2C55*/ /**/
+  0x2C56, /*U+2C56*/ /**/
+  0x2C57, /*U+2C57*/ /**/
+  0x2C58, /*U+2C58*/ /**/
+  0x2C59, /*U+2C59*/ /**/
+  0x2C5A, /*U+2C5A*/ /**/
+  0x2C5B, /*U+2C5B*/ /**/
+  0x2C5C, /*U+2C5C*/ /**/
+  0x2C5D, /*U+2C5D*/ /**/
+  0x2C5E, /*U+2C5E*/ /**/
+  0x2C5F, /*U+2C5F*/ /**/
+  0x2C61, /*U+2C60*/ /*LATIN CAPITAL LETTER L WITH DOUBLE BAR*/
+  0x2C61, /*U+2C61*/ /**/
+  0x026B, /*U+2C62*/ /*LATIN CAPITAL LETTER L WITH MIDDLE TILDE*/
+  0x1D7D, /*U+2C63*/ /*LATIN CAPITAL LETTER P WITH STROKE*/
+  0x027D, /*U+2C64*/ /*LATIN CAPITAL LETTER R WITH TAIL*/
+  0x2C65, /*U+2C65*/ /**/
+  0x2C66, /*U+2C66*/ /**/
+  0x2C68, /*U+2C67*/ /*LATIN CAPITAL LETTER H WITH DESCENDER*/
+  0x2C68, /*U+2C68*/ /**/
+  0x2C6A, /*U+2C69*/ /*LATIN CAPITAL LETTER K WITH DESCENDER*/
+  0x2C6A, /*U+2C6A*/ /**/
+  0x2C6C, /*U+2C6B*/ /*LATIN CAPITAL LETTER Z WITH DESCENDER*/
+  0x2C6C, /*U+2C6C*/ /**/
+  0x0251, /*U+2C6D*/ /*LATIN CAPITAL LETTER ALPHA*/
+  0x0271, /*U+2C6E*/ /*LATIN CAPITAL LETTER M WITH HOOK*/
+  0x0250, /*U+2C6F*/ /*LATIN CAPITAL LETTER TURNED A*/
+  0x0252, /*U+2C70*/ /*LATIN CAPITAL LETTER TURNED ALPHA*/
+  0x2C71, /*U+2C71*/ /**/
+  0x2C73, /*U+2C72*/ /*LATIN CAPITAL LETTER W WITH HOOK*/
+  0x2C73, /*U+2C73*/ /**/
+  0x2C74, /*U+2C74*/ /**/
+  0x2C76, /*U+2C75*/ /*LATIN CAPITAL LETTER HALF H*/
+  0x2C76, /*U+2C76*/ /**/
+  0x2C77, /*U+2C77*/ /**/
+  0x2C78, /*U+2C78*/ /**/
+  0x2C79, /*U+2C79*/ /**/
+  0x2C7A, /*U+2C7A*/ /**/
+  0x2C7B, /*U+2C7B*/ /**/
+  0x2C7C, /*U+2C7C*/ /**/
+  0x2C7D, /*U+2C7D*/ /**/
+  0x023F, /*U+2C7E*/ /*LATIN CAPITAL LETTER S WITH SWASH TAIL*/
+  0x0240, /*U+2C7F*/ /*LATIN CAPITAL LETTER Z WITH SWASH TAIL*/
+  0x2C81, /*U+2C80*/ /*COPTIC CAPITAL LETTER ALFA*/
+  0x2C81, /*U+2C81*/ /**/
+  0x2C83, /*U+2C82*/ /*COPTIC CAPITAL LETTER VIDA*/
+  0x2C83, /*U+2C83*/ /**/
+  0x2C85, /*U+2C84*/ /*COPTIC CAPITAL LETTER GAMMA*/
+  0x2C85, /*U+2C85*/ /**/
+  0x2C87, /*U+2C86*/ /*COPTIC CAPITAL LETTER DALDA*/
+  0x2C87, /*U+2C87*/ /**/
+  0x2C89, /*U+2C88*/ /*COPTIC CAPITAL LETTER EIE*/
+  0x2C89, /*U+2C89*/ /**/
+  0x2C8B, /*U+2C8A*/ /*COPTIC CAPITAL LETTER SOU*/
+  0x2C8B, /*U+2C8B*/ /**/
+  0x2C8D, /*U+2C8C*/ /*COPTIC CAPITAL LETTER ZATA*/
+  0x2C8D, /*U+2C8D*/ /**/
+  0x2C8F, /*U+2C8E*/ /*COPTIC CAPITAL LETTER HATE*/
+  0x2C8F, /*U+2C8F*/ /**/
+  0x2C91, /*U+2C90*/ /*COPTIC CAPITAL LETTER THETHE*/
+  0x2C91, /*U+2C91*/ /**/
+  0x2C93, /*U+2C92*/ /*COPTIC CAPITAL LETTER IAUDA*/
+  0x2C93, /*U+2C93*/ /**/
+  0x2C95, /*U+2C94*/ /*COPTIC CAPITAL LETTER KAPA*/
+  0x2C95, /*U+2C95*/ /**/
+  0x2C97, /*U+2C96*/ /*COPTIC CAPITAL LETTER LAULA*/
+  0x2C97, /*U+2C97*/ /**/
+  0x2C99, /*U+2C98*/ /*COPTIC CAPITAL LETTER MI*/
+  0x2C99, /*U+2C99*/ /**/
+  0x2C9B, /*U+2C9A*/ /*COPTIC CAPITAL LETTER NI*/
+  0x2C9B, /*U+2C9B*/ /**/
+  0x2C9D, /*U+2C9C*/ /*COPTIC CAPITAL LETTER KSI*/
+  0x2C9D, /*U+2C9D*/ /**/
+  0x2C9F, /*U+2C9E*/ /*COPTIC CAPITAL LETTER O*/
+  0x2C9F, /*U+2C9F*/ /**/
+  0x2CA1, /*U+2CA0*/ /*COPTIC CAPITAL LETTER PI*/
+  0x2CA1, /*U+2CA1*/ /**/
+  0x2CA3, /*U+2CA2*/ /*COPTIC CAPITAL LETTER RO*/
+  0x2CA3, /*U+2CA3*/ /**/
+  0x2CA5, /*U+2CA4*/ /*COPTIC CAPITAL LETTER SIMA*/
+  0x2CA5, /*U+2CA5*/ /**/
+  0x2CA7, /*U+2CA6*/ /*COPTIC CAPITAL LETTER TAU*/
+  0x2CA7, /*U+2CA7*/ /**/
+  0x2CA9, /*U+2CA8*/ /*COPTIC CAPITAL LETTER UA*/
+  0x2CA9, /*U+2CA9*/ /**/
+  0x2CAB, /*U+2CAA*/ /*COPTIC CAPITAL LETTER FI*/
+  0x2CAB, /*U+2CAB*/ /**/
+  0x2CAD, /*U+2CAC*/ /*COPTIC CAPITAL LETTER KHI*/
+  0x2CAD, /*U+2CAD*/ /**/
+  0x2CAF, /*U+2CAE*/ /*COPTIC CAPITAL LETTER PSI*/
+  0x2CAF, /*U+2CAF*/ /**/
+  0x2CB1, /*U+2CB0*/ /*COPTIC CAPITAL LETTER OOU*/
+  0x2CB1, /*U+2CB1*/ /**/
+  0x2CB3, /*U+2CB2*/ /*COPTIC CAPITAL LETTER DIALECT-P ALEF*/
+  0x2CB3, /*U+2CB3*/ /**/
+  0x2CB5, /*U+2CB4*/ /*COPTIC CAPITAL LETTER OLD COPTIC AIN*/
+  0x2CB5, /*U+2CB5*/ /**/
+  0x2CB7, /*U+2CB6*/ /*COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE*/
+  0x2CB7, /*U+2CB7*/ /**/
+  0x2CB9, /*U+2CB8*/ /*COPTIC CAPITAL LETTER DIALECT-P KAPA*/
+  0x2CB9, /*U+2CB9*/ /**/
+  0x2CBB, /*U+2CBA*/ /*COPTIC CAPITAL LETTER DIALECT-P NI*/
+  0x2CBB, /*U+2CBB*/ /**/
+  0x2CBD, /*U+2CBC*/ /*COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI*/
+  0x2CBD, /*U+2CBD*/ /**/
+  0x2CBF, /*U+2CBE*/ /*COPTIC CAPITAL LETTER OLD COPTIC OOU*/
+  0x2CBF, /*U+2CBF*/ /**/
+  0x2CC1, /*U+2CC0*/ /*COPTIC CAPITAL LETTER SAMPI*/
+  0x2CC1, /*U+2CC1*/ /**/
+  0x2CC3, /*U+2CC2*/ /*COPTIC CAPITAL LETTER CROSSED SHEI*/
+  0x2CC3, /*U+2CC3*/ /**/
+  0x2CC5, /*U+2CC4*/ /*COPTIC CAPITAL LETTER OLD COPTIC SHEI*/
+  0x2CC5, /*U+2CC5*/ /**/
+  0x2CC7, /*U+2CC6*/ /*COPTIC CAPITAL LETTER OLD COPTIC ESH*/
+  0x2CC7, /*U+2CC7*/ /**/
+  0x2CC9, /*U+2CC8*/ /*COPTIC CAPITAL LETTER AKHMIMIC KHEI*/
+  0x2CC9, /*U+2CC9*/ /**/
+  0x2CCB, /*U+2CCA*/ /*COPTIC CAPITAL LETTER DIALECT-P HORI*/
+  0x2CCB, /*U+2CCB*/ /**/
+  0x2CCD, /*U+2CCC*/ /*COPTIC CAPITAL LETTER OLD COPTIC HORI*/
+  0x2CCD, /*U+2CCD*/ /**/
+  0x2CCF, /*U+2CCE*/ /*COPTIC CAPITAL LETTER OLD COPTIC HA*/
+  0x2CCF, /*U+2CCF*/ /**/
+  0x2CD1, /*U+2CD0*/ /*COPTIC CAPITAL LETTER L-SHAPED HA*/
+  0x2CD1, /*U+2CD1*/ /**/
+  0x2CD3, /*U+2CD2*/ /*COPTIC CAPITAL LETTER OLD COPTIC HEI*/
+  0x2CD3, /*U+2CD3*/ /**/
+  0x2CD5, /*U+2CD4*/ /*COPTIC CAPITAL LETTER OLD COPTIC HAT*/
+  0x2CD5, /*U+2CD5*/ /**/
+  0x2CD7, /*U+2CD6*/ /*COPTIC CAPITAL LETTER OLD COPTIC GANGIA*/
+  0x2CD7, /*U+2CD7*/ /**/
+  0x2CD9, /*U+2CD8*/ /*COPTIC CAPITAL LETTER OLD COPTIC DJA*/
+  0x2CD9, /*U+2CD9*/ /**/
+  0x2CDB, /*U+2CDA*/ /*COPTIC CAPITAL LETTER OLD COPTIC SHIMA*/
+  0x2CDB, /*U+2CDB*/ /**/
+  0x2CDD, /*U+2CDC*/ /*COPTIC CAPITAL LETTER OLD NUBIAN SHIMA*/
+  0x2CDD, /*U+2CDD*/ /**/
+  0x2CDF, /*U+2CDE*/ /*COPTIC CAPITAL LETTER OLD NUBIAN NGI*/
+  0x2CDF, /*U+2CDF*/ /**/
+  0x2CE1, /*U+2CE0*/ /*COPTIC CAPITAL LETTER OLD NUBIAN NYI*/
+  0x2CE1, /*U+2CE1*/ /**/
+  0x2CE3, /*U+2CE2*/ /*COPTIC CAPITAL LETTER OLD NUBIAN WAU*/
+  0x2CE3, /*U+2CE3*/ /**/
+  0x2CE4, /*U+2CE4*/ /**/
+  0x2CE5, /*U+2CE5*/ /**/
+  0x2CE6, /*U+2CE6*/ /**/
+  0x2CE7, /*U+2CE7*/ /**/
+  0x2CE8, /*U+2CE8*/ /**/
+  0x2CE9, /*U+2CE9*/ /**/
+  0x2CEA, /*U+2CEA*/ /**/
+  0x2CEC, /*U+2CEB*/ /*COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI*/
+  0x2CEC, /*U+2CEC*/ /**/
+  0x2CEE, /*U+2CED*/ /*COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA*/
+  0x2CEE, /*U+2CEE*/ /**/
+  0x2CEF, /*U+2CEF*/ /**/
+  0x2CF0, /*U+2CF0*/ /**/
+  0x2CF1, /*U+2CF1*/ /**/
+  0x2CF2, /*U+2CF2*/ /**/
+  0x2CF3, /*U+2CF3*/ /**/
+  0x2CF4, /*U+2CF4*/ /**/
+  0x2CF5, /*U+2CF5*/ /**/
+  0x2CF6, /*U+2CF6*/ /**/
+  0x2CF7, /*U+2CF7*/ /**/
+  0x2CF8, /*U+2CF8*/ /**/
+  0x2CF9, /*U+2CF9*/ /**/
+  0x2CFA, /*U+2CFA*/ /**/
+  0x2CFB, /*U+2CFB*/ /**/
+  0x2CFC, /*U+2CFC*/ /**/
+  0x2CFD, /*U+2CFD*/ /**/
+  0x2CFE, /*U+2CFE*/ /**/
+  0x2CFF, /*U+2CFF*/ /**/
+};
+
+static const u_int16_t lower_table_9[128] = {
+  0xA641, /*U+A640*/ /*CYRILLIC CAPITAL LETTER ZEMLYA*/
+  0xA641, /*U+A641*/ /**/
+  0xA643, /*U+A642*/ /*CYRILLIC CAPITAL LETTER DZELO*/
+  0xA643, /*U+A643*/ /**/
+  0xA645, /*U+A644*/ /*CYRILLIC CAPITAL LETTER REVERSED DZE*/
+  0xA645, /*U+A645*/ /**/
+  0xA647, /*U+A646*/ /*CYRILLIC CAPITAL LETTER IOTA*/
+  0xA647, /*U+A647*/ /**/
+  0xA649, /*U+A648*/ /*CYRILLIC CAPITAL LETTER DJERV*/
+  0xA649, /*U+A649*/ /**/
+  0xA64B, /*U+A64A*/ /*CYRILLIC CAPITAL LETTER MONOGRAPH UK*/
+  0xA64B, /*U+A64B*/ /**/
+  0xA64D, /*U+A64C*/ /*CYRILLIC CAPITAL LETTER BROAD OMEGA*/
+  0xA64D, /*U+A64D*/ /**/
+  0xA64F, /*U+A64E*/ /*CYRILLIC CAPITAL LETTER NEUTRAL YER*/
+  0xA64F, /*U+A64F*/ /**/
+  0xA651, /*U+A650*/ /*CYRILLIC CAPITAL LETTER YERU WITH BACK YER*/
+  0xA651, /*U+A651*/ /**/
+  0xA653, /*U+A652*/ /*CYRILLIC CAPITAL LETTER IOTIFIED YAT*/
+  0xA653, /*U+A653*/ /**/
+  0xA655, /*U+A654*/ /*CYRILLIC CAPITAL LETTER REVERSED YU*/
+  0xA655, /*U+A655*/ /**/
+  0xA657, /*U+A656*/ /*CYRILLIC CAPITAL LETTER IOTIFIED A*/
+  0xA657, /*U+A657*/ /**/
+  0xA659, /*U+A658*/ /*CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS*/
+  0xA659, /*U+A659*/ /**/
+  0xA65B, /*U+A65A*/ /*CYRILLIC CAPITAL LETTER BLENDED YUS*/
+  0xA65B, /*U+A65B*/ /**/
+  0xA65D, /*U+A65C*/ /*CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS*/
+  0xA65D, /*U+A65D*/ /**/
+  0xA65F, /*U+A65E*/ /*CYRILLIC CAPITAL LETTER YN*/
+  0xA65F, /*U+A65F*/ /**/
+  0xA661, /*U+A660*/ /*CYRILLIC CAPITAL LETTER REVERSED TSE*/
+  0xA661, /*U+A661*/ /**/
+  0xA663, /*U+A662*/ /*CYRILLIC CAPITAL LETTER SOFT DE*/
+  0xA663, /*U+A663*/ /**/
+  0xA665, /*U+A664*/ /*CYRILLIC CAPITAL LETTER SOFT EL*/
+  0xA665, /*U+A665*/ /**/
+  0xA667, /*U+A666*/ /*CYRILLIC CAPITAL LETTER SOFT EM*/
+  0xA667, /*U+A667*/ /**/
+  0xA669, /*U+A668*/ /*CYRILLIC CAPITAL LETTER MONOCULAR O*/
+  0xA669, /*U+A669*/ /**/
+  0xA66B, /*U+A66A*/ /*CYRILLIC CAPITAL LETTER BINOCULAR O*/
+  0xA66B, /*U+A66B*/ /**/
+  0xA66D, /*U+A66C*/ /*CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O*/
+  0xA66D, /*U+A66D*/ /**/
+  0xA66E, /*U+A66E*/ /**/
+  0xA66F, /*U+A66F*/ /**/
+  0xA670, /*U+A670*/ /**/
+  0xA671, /*U+A671*/ /**/
+  0xA672, /*U+A672*/ /**/
+  0xA673, /*U+A673*/ /**/
+  0xA674, /*U+A674*/ /**/
+  0xA675, /*U+A675*/ /**/
+  0xA676, /*U+A676*/ /**/
+  0xA677, /*U+A677*/ /**/
+  0xA678, /*U+A678*/ /**/
+  0xA679, /*U+A679*/ /**/
+  0xA67A, /*U+A67A*/ /**/
+  0xA67B, /*U+A67B*/ /**/
+  0xA67C, /*U+A67C*/ /**/
+  0xA67D, /*U+A67D*/ /**/
+  0xA67E, /*U+A67E*/ /**/
+  0xA67F, /*U+A67F*/ /**/
+  0xA681, /*U+A680*/ /*CYRILLIC CAPITAL LETTER DWE*/
+  0xA681, /*U+A681*/ /**/
+  0xA683, /*U+A682*/ /*CYRILLIC CAPITAL LETTER DZWE*/
+  0xA683, /*U+A683*/ /**/
+  0xA685, /*U+A684*/ /*CYRILLIC CAPITAL LETTER ZHWE*/
+  0xA685, /*U+A685*/ /**/
+  0xA687, /*U+A686*/ /*CYRILLIC CAPITAL LETTER CCHE*/
+  0xA687, /*U+A687*/ /**/
+  0xA689, /*U+A688*/ /*CYRILLIC CAPITAL LETTER DZZE*/
+  0xA689, /*U+A689*/ /**/
+  0xA68B, /*U+A68A*/ /*CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK*/
+  0xA68B, /*U+A68B*/ /**/
+  0xA68D, /*U+A68C*/ /*CYRILLIC CAPITAL LETTER TWE*/
+  0xA68D, /*U+A68D*/ /**/
+  0xA68F, /*U+A68E*/ /*CYRILLIC CAPITAL LETTER TSWE*/
+  0xA68F, /*U+A68F*/ /**/
+  0xA691, /*U+A690*/ /*CYRILLIC CAPITAL LETTER TSSE*/
+  0xA691, /*U+A691*/ /**/
+  0xA693, /*U+A692*/ /*CYRILLIC CAPITAL LETTER TCHE*/
+  0xA693, /*U+A693*/ /**/
+  0xA695, /*U+A694*/ /*CYRILLIC CAPITAL LETTER HWE*/
+  0xA695, /*U+A695*/ /**/
+  0xA697, /*U+A696*/ /*CYRILLIC CAPITAL LETTER SHWE*/
+  0xA697, /*U+A697*/ /**/
+  0xA698, /*U+A698*/ /**/
+  0xA699, /*U+A699*/ /**/
+  0xA69A, /*U+A69A*/ /**/
+  0xA69B, /*U+A69B*/ /**/
+  0xA69C, /*U+A69C*/ /**/
+  0xA69D, /*U+A69D*/ /**/
+  0xA69E, /*U+A69E*/ /**/
+  0xA69F, /*U+A69F*/ /**/
+  0xA6A0, /*U+A6A0*/ /**/
+  0xA6A1, /*U+A6A1*/ /**/
+  0xA6A2, /*U+A6A2*/ /**/
+  0xA6A3, /*U+A6A3*/ /**/
+  0xA6A4, /*U+A6A4*/ /**/
+  0xA6A5, /*U+A6A5*/ /**/
+  0xA6A6, /*U+A6A6*/ /**/
+  0xA6A7, /*U+A6A7*/ /**/
+  0xA6A8, /*U+A6A8*/ /**/
+  0xA6A9, /*U+A6A9*/ /**/
+  0xA6AA, /*U+A6AA*/ /**/
+  0xA6AB, /*U+A6AB*/ /**/
+  0xA6AC, /*U+A6AC*/ /**/
+  0xA6AD, /*U+A6AD*/ /**/
+  0xA6AE, /*U+A6AE*/ /**/
+  0xA6AF, /*U+A6AF*/ /**/
+  0xA6B0, /*U+A6B0*/ /**/
+  0xA6B1, /*U+A6B1*/ /**/
+  0xA6B2, /*U+A6B2*/ /**/
+  0xA6B3, /*U+A6B3*/ /**/
+  0xA6B4, /*U+A6B4*/ /**/
+  0xA6B5, /*U+A6B5*/ /**/
+  0xA6B6, /*U+A6B6*/ /**/
+  0xA6B7, /*U+A6B7*/ /**/
+  0xA6B8, /*U+A6B8*/ /**/
+  0xA6B9, /*U+A6B9*/ /**/
+  0xA6BA, /*U+A6BA*/ /**/
+  0xA6BB, /*U+A6BB*/ /**/
+  0xA6BC, /*U+A6BC*/ /**/
+  0xA6BD, /*U+A6BD*/ /**/
+  0xA6BE, /*U+A6BE*/ /**/
+  0xA6BF, /*U+A6BF*/ /**/
+};
+
+static const u_int16_t lower_table_10[192] = {
+  0xA700, /*U+A700*/ /**/
+  0xA701, /*U+A701*/ /**/
+  0xA702, /*U+A702*/ /**/
+  0xA703, /*U+A703*/ /**/
+  0xA704, /*U+A704*/ /**/
+  0xA705, /*U+A705*/ /**/
+  0xA706, /*U+A706*/ /**/
+  0xA707, /*U+A707*/ /**/
+  0xA708, /*U+A708*/ /**/
+  0xA709, /*U+A709*/ /**/
+  0xA70A, /*U+A70A*/ /**/
+  0xA70B, /*U+A70B*/ /**/
+  0xA70C, /*U+A70C*/ /**/
+  0xA70D, /*U+A70D*/ /**/
+  0xA70E, /*U+A70E*/ /**/
+  0xA70F, /*U+A70F*/ /**/
+  0xA710, /*U+A710*/ /**/
+  0xA711, /*U+A711*/ /**/
+  0xA712, /*U+A712*/ /**/
+  0xA713, /*U+A713*/ /**/
+  0xA714, /*U+A714*/ /**/
+  0xA715, /*U+A715*/ /**/
+  0xA716, /*U+A716*/ /**/
+  0xA717, /*U+A717*/ /**/
+  0xA718, /*U+A718*/ /**/
+  0xA719, /*U+A719*/ /**/
+  0xA71A, /*U+A71A*/ /**/
+  0xA71B, /*U+A71B*/ /**/
+  0xA71C, /*U+A71C*/ /**/
+  0xA71D, /*U+A71D*/ /**/
+  0xA71E, /*U+A71E*/ /**/
+  0xA71F, /*U+A71F*/ /**/
+  0xA720, /*U+A720*/ /**/
+  0xA721, /*U+A721*/ /**/
+  0xA723, /*U+A722*/ /*LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF*/
+  0xA723, /*U+A723*/ /**/
+  0xA725, /*U+A724*/ /*LATIN CAPITAL LETTER EGYPTOLOGICAL AIN*/
+  0xA725, /*U+A725*/ /**/
+  0xA727, /*U+A726*/ /*LATIN CAPITAL LETTER HENG*/
+  0xA727, /*U+A727*/ /**/
+  0xA729, /*U+A728*/ /*LATIN CAPITAL LETTER TZ*/
+  0xA729, /*U+A729*/ /**/
+  0xA72B, /*U+A72A*/ /*LATIN CAPITAL LETTER TRESILLO*/
+  0xA72B, /*U+A72B*/ /**/
+  0xA72D, /*U+A72C*/ /*LATIN CAPITAL LETTER CUATRILLO*/
+  0xA72D, /*U+A72D*/ /**/
+  0xA72F, /*U+A72E*/ /*LATIN CAPITAL LETTER CUATRILLO WITH COMMA*/
+  0xA72F, /*U+A72F*/ /**/
+  0xA730, /*U+A730*/ /**/
+  0xA731, /*U+A731*/ /**/
+  0xA733, /*U+A732*/ /*LATIN CAPITAL LETTER AA*/
+  0xA733, /*U+A733*/ /**/
+  0xA735, /*U+A734*/ /*LATIN CAPITAL LETTER AO*/
+  0xA735, /*U+A735*/ /**/
+  0xA737, /*U+A736*/ /*LATIN CAPITAL LETTER AU*/
+  0xA737, /*U+A737*/ /**/
+  0xA739, /*U+A738*/ /*LATIN CAPITAL LETTER AV*/
+  0xA739, /*U+A739*/ /**/
+  0xA73B, /*U+A73A*/ /*LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR*/
+  0xA73B, /*U+A73B*/ /**/
+  0xA73D, /*U+A73C*/ /*LATIN CAPITAL LETTER AY*/
+  0xA73D, /*U+A73D*/ /**/
+  0xA73F, /*U+A73E*/ /*LATIN CAPITAL LETTER REVERSED C WITH DOT*/
+  0xA73F, /*U+A73F*/ /**/
+  0xA741, /*U+A740*/ /*LATIN CAPITAL LETTER K WITH STROKE*/
+  0xA741, /*U+A741*/ /**/
+  0xA743, /*U+A742*/ /*LATIN CAPITAL LETTER K WITH DIAGONAL STROKE*/
+  0xA743, /*U+A743*/ /**/
+  0xA745, /*U+A744*/ /*LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE*/
+  0xA745, /*U+A745*/ /**/
+  0xA747, /*U+A746*/ /*LATIN CAPITAL LETTER BROKEN L*/
+  0xA747, /*U+A747*/ /**/
+  0xA749, /*U+A748*/ /*LATIN CAPITAL LETTER L WITH HIGH STROKE*/
+  0xA749, /*U+A749*/ /**/
+  0xA74B, /*U+A74A*/ /*LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY*/
+  0xA74B, /*U+A74B*/ /**/
+  0xA74D, /*U+A74C*/ /*LATIN CAPITAL LETTER O WITH LOOP*/
+  0xA74D, /*U+A74D*/ /**/
+  0xA74F, /*U+A74E*/ /*LATIN CAPITAL LETTER OO*/
+  0xA74F, /*U+A74F*/ /**/
+  0xA751, /*U+A750*/ /*LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER*/
+  0xA751, /*U+A751*/ /**/
+  0xA753, /*U+A752*/ /*LATIN CAPITAL LETTER P WITH FLOURISH*/
+  0xA753, /*U+A753*/ /**/
+  0xA755, /*U+A754*/ /*LATIN CAPITAL LETTER P WITH SQUIRREL TAIL*/
+  0xA755, /*U+A755*/ /**/
+  0xA757, /*U+A756*/ /*LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER*/
+  0xA757, /*U+A757*/ /**/
+  0xA759, /*U+A758*/ /*LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE*/
+  0xA759, /*U+A759*/ /**/
+  0xA75B, /*U+A75A*/ /*LATIN CAPITAL LETTER R ROTUNDA*/
+  0xA75B, /*U+A75B*/ /**/
+  0xA75D, /*U+A75C*/ /*LATIN CAPITAL LETTER RUM ROTUNDA*/
+  0xA75D, /*U+A75D*/ /**/
+  0xA75F, /*U+A75E*/ /*LATIN CAPITAL LETTER V WITH DIAGONAL STROKE*/
+  0xA75F, /*U+A75F*/ /**/
+  0xA761, /*U+A760*/ /*LATIN CAPITAL LETTER VY*/
+  0xA761, /*U+A761*/ /**/
+  0xA763, /*U+A762*/ /*LATIN CAPITAL LETTER VISIGOTHIC Z*/
+  0xA763, /*U+A763*/ /**/
+  0xA765, /*U+A764*/ /*LATIN CAPITAL LETTER THORN WITH STROKE*/
+  0xA765, /*U+A765*/ /**/
+  0xA767, /*U+A766*/ /*LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER*/
+  0xA767, /*U+A767*/ /**/
+  0xA769, /*U+A768*/ /*LATIN CAPITAL LETTER VEND*/
+  0xA769, /*U+A769*/ /**/
+  0xA76B, /*U+A76A*/ /*LATIN CAPITAL LETTER ET*/
+  0xA76B, /*U+A76B*/ /**/
+  0xA76D, /*U+A76C*/ /*LATIN CAPITAL LETTER IS*/
+  0xA76D, /*U+A76D*/ /**/
+  0xA76F, /*U+A76E*/ /*LATIN CAPITAL LETTER CON*/
+  0xA76F, /*U+A76F*/ /**/
+  0xA770, /*U+A770*/ /**/
+  0xA771, /*U+A771*/ /**/
+  0xA772, /*U+A772*/ /**/
+  0xA773, /*U+A773*/ /**/
+  0xA774, /*U+A774*/ /**/
+  0xA775, /*U+A775*/ /**/
+  0xA776, /*U+A776*/ /**/
+  0xA777, /*U+A777*/ /**/
+  0xA778, /*U+A778*/ /**/
+  0xA77A, /*U+A779*/ /*LATIN CAPITAL LETTER INSULAR D*/
+  0xA77A, /*U+A77A*/ /**/
+  0xA77C, /*U+A77B*/ /*LATIN CAPITAL LETTER INSULAR F*/
+  0xA77C, /*U+A77C*/ /**/
+  0x1D79, /*U+A77D*/ /*LATIN CAPITAL LETTER INSULAR G*/
+  0xA77F, /*U+A77E*/ /*LATIN CAPITAL LETTER TURNED INSULAR G*/
+  0xA77F, /*U+A77F*/ /**/
+  0xA781, /*U+A780*/ /*LATIN CAPITAL LETTER TURNED L*/
+  0xA781, /*U+A781*/ /**/
+  0xA783, /*U+A782*/ /*LATIN CAPITAL LETTER INSULAR R*/
+  0xA783, /*U+A783*/ /**/
+  0xA785, /*U+A784*/ /*LATIN CAPITAL LETTER INSULAR S*/
+  0xA785, /*U+A785*/ /**/
+  0xA787, /*U+A786*/ /*LATIN CAPITAL LETTER INSULAR T*/
+  0xA787, /*U+A787*/ /**/
+  0xA788, /*U+A788*/ /**/
+  0xA789, /*U+A789*/ /**/
+  0xA78A, /*U+A78A*/ /**/
+  0xA78C, /*U+A78B*/ /*LATIN CAPITAL LETTER SALTILLO*/
+  0xA78C, /*U+A78C*/ /**/
+  0x0265, /*U+A78D*/ /*LATIN CAPITAL LETTER TURNED H*/
+  0xA78E, /*U+A78E*/ /**/
+  0xA78F, /*U+A78F*/ /**/
+  0xA791, /*U+A790*/ /*LATIN CAPITAL LETTER N WITH DESCENDER*/
+  0xA791, /*U+A791*/ /**/
+  0xA792, /*U+A792*/ /**/
+  0xA793, /*U+A793*/ /**/
+  0xA794, /*U+A794*/ /**/
+  0xA795, /*U+A795*/ /**/
+  0xA796, /*U+A796*/ /**/
+  0xA797, /*U+A797*/ /**/
+  0xA798, /*U+A798*/ /**/
+  0xA799, /*U+A799*/ /**/
+  0xA79A, /*U+A79A*/ /**/
+  0xA79B, /*U+A79B*/ /**/
+  0xA79C, /*U+A79C*/ /**/
+  0xA79D, /*U+A79D*/ /**/
+  0xA79E, /*U+A79E*/ /**/
+  0xA79F, /*U+A79F*/ /**/
+  0xA7A1, /*U+A7A0*/ /*LATIN CAPITAL LETTER G WITH OBLIQUE STROKE*/
+  0xA7A1, /*U+A7A1*/ /**/
+  0xA7A3, /*U+A7A2*/ /*LATIN CAPITAL LETTER K WITH OBLIQUE STROKE*/
+  0xA7A3, /*U+A7A3*/ /**/
+  0xA7A5, /*U+A7A4*/ /*LATIN CAPITAL LETTER N WITH OBLIQUE STROKE*/
+  0xA7A5, /*U+A7A5*/ /**/
+  0xA7A7, /*U+A7A6*/ /*LATIN CAPITAL LETTER R WITH OBLIQUE STROKE*/
+  0xA7A7, /*U+A7A7*/ /**/
+  0xA7A9, /*U+A7A8*/ /*LATIN CAPITAL LETTER S WITH OBLIQUE STROKE*/
+  0xA7A9, /*U+A7A9*/ /**/
+  0xA7AA, /*U+A7AA*/ /**/
+  0xA7AB, /*U+A7AB*/ /**/
+  0xA7AC, /*U+A7AC*/ /**/
+  0xA7AD, /*U+A7AD*/ /**/
+  0xA7AE, /*U+A7AE*/ /**/
+  0xA7AF, /*U+A7AF*/ /**/
+  0xA7B0, /*U+A7B0*/ /**/
+  0xA7B1, /*U+A7B1*/ /**/
+  0xA7B2, /*U+A7B2*/ /**/
+  0xA7B3, /*U+A7B3*/ /**/
+  0xA7B4, /*U+A7B4*/ /**/
+  0xA7B5, /*U+A7B5*/ /**/
+  0xA7B6, /*U+A7B6*/ /**/
+  0xA7B7, /*U+A7B7*/ /**/
+  0xA7B8, /*U+A7B8*/ /**/
+  0xA7B9, /*U+A7B9*/ /**/
+  0xA7BA, /*U+A7BA*/ /**/
+  0xA7BB, /*U+A7BB*/ /**/
+  0xA7BC, /*U+A7BC*/ /**/
+  0xA7BD, /*U+A7BD*/ /**/
+  0xA7BE, /*U+A7BE*/ /**/
+  0xA7BF, /*U+A7BF*/ /**/
+};
+
+static const u_int16_t lower_table_11[64] = {
+  0xFF00, /*U+FF00*/ /**/
+  0xFF01, /*U+FF01*/ /**/
+  0xFF02, /*U+FF02*/ /**/
+  0xFF03, /*U+FF03*/ /**/
+  0xFF04, /*U+FF04*/ /**/
+  0xFF05, /*U+FF05*/ /**/
+  0xFF06, /*U+FF06*/ /**/
+  0xFF07, /*U+FF07*/ /**/
+  0xFF08, /*U+FF08*/ /**/
+  0xFF09, /*U+FF09*/ /**/
+  0xFF0A, /*U+FF0A*/ /**/
+  0xFF0B, /*U+FF0B*/ /**/
+  0xFF0C, /*U+FF0C*/ /**/
+  0xFF0D, /*U+FF0D*/ /**/
+  0xFF0E, /*U+FF0E*/ /**/
+  0xFF0F, /*U+FF0F*/ /**/
+  0xFF10, /*U+FF10*/ /**/
+  0xFF11, /*U+FF11*/ /**/
+  0xFF12, /*U+FF12*/ /**/
+  0xFF13, /*U+FF13*/ /**/
+  0xFF14, /*U+FF14*/ /**/
+  0xFF15, /*U+FF15*/ /**/
+  0xFF16, /*U+FF16*/ /**/
+  0xFF17, /*U+FF17*/ /**/
+  0xFF18, /*U+FF18*/ /**/
+  0xFF19, /*U+FF19*/ /**/
+  0xFF1A, /*U+FF1A*/ /**/
+  0xFF1B, /*U+FF1B*/ /**/
+  0xFF1C, /*U+FF1C*/ /**/
+  0xFF1D, /*U+FF1D*/ /**/
+  0xFF1E, /*U+FF1E*/ /**/
+  0xFF1F, /*U+FF1F*/ /**/
+  0xFF20, /*U+FF20*/ /**/
+  0xFF41, /*U+FF21*/ /*FULLWIDTH LATIN CAPITAL LETTER A*/
+  0xFF42, /*U+FF22*/ /*FULLWIDTH LATIN CAPITAL LETTER B*/
+  0xFF43, /*U+FF23*/ /*FULLWIDTH LATIN CAPITAL LETTER C*/
+  0xFF44, /*U+FF24*/ /*FULLWIDTH LATIN CAPITAL LETTER D*/
+  0xFF45, /*U+FF25*/ /*FULLWIDTH LATIN CAPITAL LETTER E*/
+  0xFF46, /*U+FF26*/ /*FULLWIDTH LATIN CAPITAL LETTER F*/
+  0xFF47, /*U+FF27*/ /*FULLWIDTH LATIN CAPITAL LETTER G*/
+  0xFF48, /*U+FF28*/ /*FULLWIDTH LATIN CAPITAL LETTER H*/
+  0xFF49, /*U+FF29*/ /*FULLWIDTH LATIN CAPITAL LETTER I*/
+  0xFF4A, /*U+FF2A*/ /*FULLWIDTH LATIN CAPITAL LETTER J*/
+  0xFF4B, /*U+FF2B*/ /*FULLWIDTH LATIN CAPITAL LETTER K*/
+  0xFF4C, /*U+FF2C*/ /*FULLWIDTH LATIN CAPITAL LETTER L*/
+  0xFF4D, /*U+FF2D*/ /*FULLWIDTH LATIN CAPITAL LETTER M*/
+  0xFF4E, /*U+FF2E*/ /*FULLWIDTH LATIN CAPITAL LETTER N*/
+  0xFF4F, /*U+FF2F*/ /*FULLWIDTH LATIN CAPITAL LETTER O*/
+  0xFF50, /*U+FF30*/ /*FULLWIDTH LATIN CAPITAL LETTER P*/
+  0xFF51, /*U+FF31*/ /*FULLWIDTH LATIN CAPITAL LETTER Q*/
+  0xFF52, /*U+FF32*/ /*FULLWIDTH LATIN CAPITAL LETTER R*/
+  0xFF53, /*U+FF33*/ /*FULLWIDTH LATIN CAPITAL LETTER S*/
+  0xFF54, /*U+FF34*/ /*FULLWIDTH LATIN CAPITAL LETTER T*/
+  0xFF55, /*U+FF35*/ /*FULLWIDTH LATIN CAPITAL LETTER U*/
+  0xFF56, /*U+FF36*/ /*FULLWIDTH LATIN CAPITAL LETTER V*/
+  0xFF57, /*U+FF37*/ /*FULLWIDTH LATIN CAPITAL LETTER W*/
+  0xFF58, /*U+FF38*/ /*FULLWIDTH LATIN CAPITAL LETTER X*/
+  0xFF59, /*U+FF39*/ /*FULLWIDTH LATIN CAPITAL LETTER Y*/
+  0xFF5A, /*U+FF3A*/ /*FULLWIDTH LATIN CAPITAL LETTER Z*/
+  0xFF3B, /*U+FF3B*/ /**/
+  0xFF3C, /*U+FF3C*/ /**/
+  0xFF3D, /*U+FF3D*/ /**/
+  0xFF3E, /*U+FF3E*/ /**/
+  0xFF3F, /*U+FF3F*/ /**/
+};
+
+static const u_int32_t lower_table_sp_1[64] = {
+  0xD801DC28, /*0xD801DC00*/ /*U+010428*/ /*U+010400*/ /*DESERET CAPITAL LETTER LONG I*/
+  0xD801DC29, /*0xD801DC01*/ /*U+010429*/ /*U+010401*/ /*DESERET CAPITAL LETTER LONG E*/
+  0xD801DC2A, /*0xD801DC02*/ /*U+01042A*/ /*U+010402*/ /*DESERET CAPITAL LETTER LONG A*/
+  0xD801DC2B, /*0xD801DC03*/ /*U+01042B*/ /*U+010403*/ /*DESERET CAPITAL LETTER LONG AH*/
+  0xD801DC2C, /*0xD801DC04*/ /*U+01042C*/ /*U+010404*/ /*DESERET CAPITAL LETTER LONG O*/
+  0xD801DC2D, /*0xD801DC05*/ /*U+01042D*/ /*U+010405*/ /*DESERET CAPITAL LETTER LONG OO*/
+  0xD801DC2E, /*0xD801DC06*/ /*U+01042E*/ /*U+010406*/ /*DESERET CAPITAL LETTER SHORT I*/
+  0xD801DC2F, /*0xD801DC07*/ /*U+01042F*/ /*U+010407*/ /*DESERET CAPITAL LETTER SHORT E*/
+  0xD801DC30, /*0xD801DC08*/ /*U+010430*/ /*U+010408*/ /*DESERET CAPITAL LETTER SHORT A*/
+  0xD801DC31, /*0xD801DC09*/ /*U+010431*/ /*U+010409*/ /*DESERET CAPITAL LETTER SHORT AH*/
+  0xD801DC32, /*0xD801DC0A*/ /*U+010432*/ /*U+01040A*/ /*DESERET CAPITAL LETTER SHORT O*/
+  0xD801DC33, /*0xD801DC0B*/ /*U+010433*/ /*U+01040B*/ /*DESERET CAPITAL LETTER SHORT OO*/
+  0xD801DC34, /*0xD801DC0C*/ /*U+010434*/ /*U+01040C*/ /*DESERET CAPITAL LETTER AY*/
+  0xD801DC35, /*0xD801DC0D*/ /*U+010435*/ /*U+01040D*/ /*DESERET CAPITAL LETTER OW*/
+  0xD801DC36, /*0xD801DC0E*/ /*U+010436*/ /*U+01040E*/ /*DESERET CAPITAL LETTER WU*/
+  0xD801DC37, /*0xD801DC0F*/ /*U+010437*/ /*U+01040F*/ /*DESERET CAPITAL LETTER YEE*/
+  0xD801DC38, /*0xD801DC10*/ /*U+010438*/ /*U+010410*/ /*DESERET CAPITAL LETTER H*/
+  0xD801DC39, /*0xD801DC11*/ /*U+010439*/ /*U+010411*/ /*DESERET CAPITAL LETTER PEE*/
+  0xD801DC3A, /*0xD801DC12*/ /*U+01043A*/ /*U+010412*/ /*DESERET CAPITAL LETTER BEE*/
+  0xD801DC3B, /*0xD801DC13*/ /*U+01043B*/ /*U+010413*/ /*DESERET CAPITAL LETTER TEE*/
+  0xD801DC3C, /*0xD801DC14*/ /*U+01043C*/ /*U+010414*/ /*DESERET CAPITAL LETTER DEE*/
+  0xD801DC3D, /*0xD801DC15*/ /*U+01043D*/ /*U+010415*/ /*DESERET CAPITAL LETTER CHEE*/
+  0xD801DC3E, /*0xD801DC16*/ /*U+01043E*/ /*U+010416*/ /*DESERET CAPITAL LETTER JEE*/
+  0xD801DC3F, /*0xD801DC17*/ /*U+01043F*/ /*U+010417*/ /*DESERET CAPITAL LETTER KAY*/
+  0xD801DC40, /*0xD801DC18*/ /*U+010440*/ /*U+010418*/ /*DESERET CAPITAL LETTER GAY*/
+  0xD801DC41, /*0xD801DC19*/ /*U+010441*/ /*U+010419*/ /*DESERET CAPITAL LETTER EF*/
+  0xD801DC42, /*0xD801DC1A*/ /*U+010442*/ /*U+01041A*/ /*DESERET CAPITAL LETTER VEE*/
+  0xD801DC43, /*0xD801DC1B*/ /*U+010443*/ /*U+01041B*/ /*DESERET CAPITAL LETTER ETH*/
+  0xD801DC44, /*0xD801DC1C*/ /*U+010444*/ /*U+01041C*/ /*DESERET CAPITAL LETTER THEE*/
+  0xD801DC45, /*0xD801DC1D*/ /*U+010445*/ /*U+01041D*/ /*DESERET CAPITAL LETTER ES*/
+  0xD801DC46, /*0xD801DC1E*/ /*U+010446*/ /*U+01041E*/ /*DESERET CAPITAL LETTER ZEE*/
+  0xD801DC47, /*0xD801DC1F*/ /*U+010447*/ /*U+01041F*/ /*DESERET CAPITAL LETTER ESH*/
+  0xD801DC48, /*0xD801DC20*/ /*U+010448*/ /*U+010420*/ /*DESERET CAPITAL LETTER ZHEE*/
+  0xD801DC49, /*0xD801DC21*/ /*U+010449*/ /*U+010421*/ /*DESERET CAPITAL LETTER ER*/
+  0xD801DC4A, /*0xD801DC22*/ /*U+01044A*/ /*U+010422*/ /*DESERET CAPITAL LETTER EL*/
+  0xD801DC4B, /*0xD801DC23*/ /*U+01044B*/ /*U+010423*/ /*DESERET CAPITAL LETTER EM*/
+  0xD801DC4C, /*0xD801DC24*/ /*U+01044C*/ /*U+010424*/ /*DESERET CAPITAL LETTER EN*/
+  0xD801DC4D, /*0xD801DC25*/ /*U+01044D*/ /*U+010425*/ /*DESERET CAPITAL LETTER ENG*/
+  0xD801DC4E, /*0xD801DC26*/ /*U+01044E*/ /*U+010426*/ /*DESERET CAPITAL LETTER OI*/
+  0xD801DC4F, /*0xD801DC27*/ /*U+01044F*/ /*U+010427*/ /*DESERET CAPITAL LETTER EW*/
+  0xD801DC28, /*0xD801DC28*/ /*U+010428*/ /*U+010428*/ /**/
+  0xD801DC29, /*0xD801DC29*/ /*U+010429*/ /*U+010429*/ /**/
+  0xD801DC2A, /*0xD801DC2A*/ /*U+01042A*/ /*U+01042A*/ /**/
+  0xD801DC2B, /*0xD801DC2B*/ /*U+01042B*/ /*U+01042B*/ /**/
+  0xD801DC2C, /*0xD801DC2C*/ /*U+01042C*/ /*U+01042C*/ /**/
+  0xD801DC2D, /*0xD801DC2D*/ /*U+01042D*/ /*U+01042D*/ /**/
+  0xD801DC2E, /*0xD801DC2E*/ /*U+01042E*/ /*U+01042E*/ /**/
+  0xD801DC2F, /*0xD801DC2F*/ /*U+01042F*/ /*U+01042F*/ /**/
+  0xD801DC30, /*0xD801DC30*/ /*U+010430*/ /*U+010430*/ /**/
+  0xD801DC31, /*0xD801DC31*/ /*U+010431*/ /*U+010431*/ /**/
+  0xD801DC32, /*0xD801DC32*/ /*U+010432*/ /*U+010432*/ /**/
+  0xD801DC33, /*0xD801DC33*/ /*U+010433*/ /*U+010433*/ /**/
+  0xD801DC34, /*0xD801DC34*/ /*U+010434*/ /*U+010434*/ /**/
+  0xD801DC35, /*0xD801DC35*/ /*U+010435*/ /*U+010435*/ /**/
+  0xD801DC36, /*0xD801DC36*/ /*U+010436*/ /*U+010436*/ /**/
+  0xD801DC37, /*0xD801DC37*/ /*U+010437*/ /*U+010437*/ /**/
+  0xD801DC38, /*0xD801DC38*/ /*U+010438*/ /*U+010438*/ /**/
+  0xD801DC39, /*0xD801DC39*/ /*U+010439*/ /*U+010439*/ /**/
+  0xD801DC3A, /*0xD801DC3A*/ /*U+01043A*/ /*U+01043A*/ /**/
+  0xD801DC3B, /*0xD801DC3B*/ /*U+01043B*/ /*U+01043B*/ /**/
+  0xD801DC3C, /*0xD801DC3C*/ /*U+01043C*/ /*U+01043C*/ /**/
+  0xD801DC3D, /*0xD801DC3D*/ /*U+01043D*/ /*U+01043D*/ /**/
+  0xD801DC3E, /*0xD801DC3E*/ /*U+01043E*/ /*U+01043E*/ /**/
+  0xD801DC3F, /*0xD801DC3F*/ /*U+01043F*/ /*U+01043F*/ /**/
+};
+
+/* EOF */
index ef48f21b27841b3d2920cf19972e7c5b2e95ad18..070ca93b1a99aedb24dc5fc510d302c26fc40fe3 100644 (file)
 #include <netatalk/endian.h>
 
 #include <atalk/unicode.h>
-#include "ucs2_casetable.h"
 #include "precompose.h"
 #include "byteorder.h"
 
-/*******************************************************************
- Convert a wide character to upper/lower case.
-********************************************************************/
-ucs2_t toupper_w(ucs2_t val)
-{
-       if ( val >= 0x0040 && val <= 0x007F)
-               return upcase_table_1[val-0x0040];
-       if ( val >= 0x00C0 && val <= 0x02BF)
-               return upcase_table_2[val-0x00C0];
-       if ( val >= 0x0380 && val <= 0x04FF)
-               return upcase_table_3[val-0x0380];
-       if ( val >= 0x0540 && val <= 0x05BF)
-               return upcase_table_4[val-0x0540];
-       if ( val >= 0x1E00 && val <= 0x1FFF)
-               return upcase_table_5[val-0x1E00];
-       if ( val >= 0x2140 && val <= 0x217F)
-               return upcase_table_6[val-0x2140];
-       if ( val >= 0x24C0 && val <= 0x24FF)
-               return upcase_table_7[val-0x24C0];
-       if ( val >= 0xFF40 && val <= 0xFF7F)
-               return upcase_table_8[val-0xFF40];
-
-       return (val);
-}
-
-
-ucs2_t tolower_w(ucs2_t val)
-{
-       if ( val >= 0x0040 && val <= 0x007F)
-               return lowcase_table_1[val-0x0040];
-       if ( val >= 0x00C0 && val <= 0x023F)
-               return lowcase_table_2[val-0x00C0];
-       if ( val >= 0x0380 && val <= 0x057F)
-               return lowcase_table_3[val-0x0380];
-       if ( val >= 0x1E00 && val <= 0x1FFF)
-               return lowcase_table_4[val-0x1E00];
-       if ( val >= 0x2140 && val <= 0x217F)
-               return lowcase_table_5[val-0x2140];
-       if ( val >= 0x2480 && val <= 0x24FF)
-               return lowcase_table_6[val-0x2480];
-       if ( val >= 0xFF00 && val <= 0xFF3F)
-               return lowcase_table_7[val-0xFF00];
-
-       return (val);
-}
-
 /*******************************************************************
  Convert a string to lower case.
  return True if any char is converted