libs/wine: Add better handling of level 4 weights in unicode collation

André Hentschel nerv at dawncrow.de
Sun Jun 13 09:54:50 CDT 2010


First, this fixes bug 5163[1] (1.2 listed).
Windows compares two variable weights(marked with an asterisk[3]) with the blanked[2] option.
There are 1849 variable weights where level 4 is the same like the unicode character and 54 which are not[3].
The 54 are left as they were by "and $1 eq $6". So just the others are improved.
So we easily have the value of level 4 for 1849 characters, so we should use this information when comparing two variable weight characters.
Therefor an before unused bit is now set in our collation table to show that this is the case.

[1] http://bugs.winehq.org/show_bug.cgi?id=5163
[2] http://unicode.org/reports/tr10/#Variable_Weighting
[3] http://www.unicode.org/reports/tr10/allkeys.txt

---
 dlls/kernel32/tests/locale.c |    6 +-
 libs/wine/collation.c        |  618 +++++++++++++++++++++---------------------
 libs/wine/cpmap.pl           |   10 +-
 libs/wine/sortkey.c          |   11 +
 4 files changed, 330 insertions(+), 315 deletions(-)

diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index f37d503..5cdefbd 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -1345,13 +1345,13 @@ static void test_CompareStringA(void)
     todo_wine ok(ret != 2, "\\2 vs \\1 expected unequal\n");
 
     ret = CompareStringA(lcid, NORM_IGNORECASE | LOCALE_USE_CP_ACP, "#", -1, ".", -1);
-    todo_wine ok(ret == CSTR_LESS_THAN, "\"#\" vs \".\" expected CSTR_LESS_THAN, got %d\n", ret);
+    ok(ret == CSTR_LESS_THAN, "\"#\" vs \".\" expected CSTR_LESS_THAN, got %d\n", ret);
 
     ret = CompareStringA(lcid, NORM_IGNORECASE, "_", -1, ".", -1);
-    todo_wine ok(ret == CSTR_GREATER_THAN, "\"_\" vs \".\" expected CSTR_GREATER_THAN, got %d\n", ret);
+    ok(ret == CSTR_GREATER_THAN, "\"_\" vs \".\" expected CSTR_GREATER_THAN, got %d\n", ret);
 
     ret = lstrcmpi("#", ".");
-    todo_wine ok(ret == -1, "\"#\" vs \".\" expected -1, got %d\n", ret);
+    ok(ret == -1, "\"#\" vs \".\" expected -1, got %d\n", ret);
 }
 
 static void test_LCMapStringA(void)
diff --git a/libs/wine/collation.c b/libs/wine/collation.c
index 465d740..c2aecf2 100644
--- a/libs/wine/collation.c
+++ b/libs/wine/collation.c
@@ -72,36 +72,36 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0000 .. 0x00ff */
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x02010111, 0x02020111, 0x02030111, 0x02040111, 0x02050111, 0x00000000, 0x00000000,
+    0x00000000, 0x02010113, 0x02020113, 0x02030113, 0x02040113, 0x02050113, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x02090111, 0x024b0111, 0x02700111, 0x02a90111, 0x09e00111, 0x02aa0111, 0x02a70111, 0x02690111,
-    0x027a0111, 0x027b0111, 0x02a20111, 0x039f0111, 0x022d0111, 0x02210111, 0x02550111, 0x02a40111,
+    0x02090113, 0x024b0113, 0x02700113, 0x02a90113, 0x09e00111, 0x02aa0113, 0x02a70113, 0x02690113,
+    0x027a0113, 0x027b0113, 0x02a20113, 0x039f0113, 0x022d0113, 0x02210113, 0x02550113, 0x02a40113,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
-    0x0a130111, 0x0a140111, 0x02370111, 0x02350111, 0x03a30111, 0x03a40111, 0x03a50111, 0x024e0111,
-    0x02a10111, 0x0a150151, 0x0a290141, 0x0a3d0151, 0x0a490151, 0x0a650151, 0x0a910151, 0x0a990151,
+    0x0a130111, 0x0a140111, 0x02370113, 0x02350113, 0x03a30113, 0x03a40113, 0x03a50113, 0x024e0113,
+    0x02a10113, 0x0a150151, 0x0a290141, 0x0a3d0151, 0x0a490151, 0x0a650151, 0x0a910151, 0x0a990151,
     0x0ab90151, 0x0ad30161, 0x0ae70141, 0x0af70141, 0x0b030161, 0x0b2b0151, 0x0b330151, 0x0b4b0161,
     0x0b670141, 0x0b730141, 0x0b7f0141, 0x0ba70151, 0x0bbf0151, 0x0bd70141, 0x0bef0151, 0x0bfb0141,
-    0x0c030151, 0x0c070141, 0x0c130141, 0x027c0111, 0x02a60111, 0x027d0111, 0x020f0111, 0x021b0111,
-    0x020c0111, 0x0a150111, 0x0a290111, 0x0a3d0111, 0x0a490111, 0x0a650111, 0x0a910111, 0x0a990111,
+    0x0c030151, 0x0c070141, 0x0c130141, 0x027c0113, 0x02a60113, 0x027d0113, 0x020f0113, 0x021b0113,
+    0x020c0113, 0x0a150111, 0x0a290111, 0x0a3d0111, 0x0a490111, 0x0a650111, 0x0a910111, 0x0a990111,
     0x0ab90111, 0x0ad30111, 0x0ae70111, 0x0af70111, 0x0b030111, 0x0b2b0111, 0x0b330111, 0x0b4b0111,
     0x0b670111, 0x0b730111, 0x0b7f0111, 0x0ba70111, 0x0bbf0111, 0x0bd70111, 0x0bef0111, 0x0bfb0111,
-    0x0c030111, 0x0c070111, 0x0c130111, 0x027e0111, 0x03a70111, 0x027f0111, 0x03aa0111, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02060111, 0x00000000, 0x00000000,
+    0x0c030111, 0x0c070111, 0x0c130111, 0x027e0113, 0x03a70113, 0x027f0113, 0x03aa0113, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02060113, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x02090141, 0x024c0111, 0x09df0111, 0x09e10111, 0x09de0111, 0x09e20111, 0x03a80111, 0x029c0111,
-    0x02140111, 0x029f0111, 0x0a150181, 0x02780111, 0x03a60111, 0x02200111, 0x02a00111, 0x02100111,
-    0x030a0111, 0x03a00111, 0x0a0d0151, 0x0a0e0151, 0x020d0111, 0x0c9f0121, 0x029d0111, 0x025f0111,
-    0x02190111, 0x0a0c0151, 0x0b4b01a1, 0x02790111, 0x0a0c0171, 0x0a0c0171, 0x0a0e0171, 0x024f0111,
+    0x02090143, 0x024c0113, 0x09df0111, 0x09e10111, 0x09de0111, 0x09e20111, 0x03a80113, 0x029c0113,
+    0x02140113, 0x029f0113, 0x0a150181, 0x02780113, 0x03a60113, 0x02200113, 0x02a00113, 0x02100113,
+    0x030a0113, 0x03a00113, 0x0a0d0151, 0x0a0e0151, 0x020d0113, 0x0c9f0121, 0x029d0113, 0x025f0113,
+    0x02190113, 0x0a0c0151, 0x0b4b01a1, 0x02790113, 0x0a0c0171, 0x0a0c0171, 0x0a0e0171, 0x024f0113,
     0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a190121, 0x0a3d0151,
     0x0a650151, 0x0a650151, 0x0a650151, 0x0a650151, 0x0ad30161, 0x0ad30161, 0x0ad30161, 0x0ad30161,
-    0x0a5d0121, 0x0b330151, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x03a20111,
+    0x0a5d0121, 0x0b330151, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x03a20113,
     0x0b530121, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0c070141, 0x0c3b0121, 0x0ba70131,
     0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a190111, 0x0a3d0111,
     0x0a650111, 0x0a650111, 0x0a650111, 0x0a650111, 0x0ad30111, 0x0ad30111, 0x0ad30111, 0x0ad30111,
-    0x0a5d0111, 0x0b330111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x03a10111,
+    0x0a5d0111, 0x0b330111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x03a10113,
     0x0b530111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0c070111, 0x0c3b0111, 0x0c070111,
     /* 0x0100 .. 0x01ff */
     0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a3d0151, 0x0a3d0111,
@@ -160,13 +160,13 @@ const unsigned int collation_table[12800] =
     0x0b770111, 0x0c650111, 0x0c690111, 0x0a490131, 0x0a490131, 0x0a490131, 0x0bbf0131, 0x0bbf0131,
     0x0bbf0131, 0x0a910131, 0x0b030131, 0x0b030131, 0x0c890111, 0x0c8d0111, 0xffffffff, 0xffffffff,
     0x0ab90191, 0x0ac90121, 0x0ae70171, 0x0b7f0191, 0x0b870121, 0x0b8f0121, 0x0ba30121, 0x0bfb0171,
-    0x0c070171, 0x02e90111, 0x02eb0111, 0x0ad10111, 0x0c580111, 0x0ad20111, 0x0c5a0111, 0x0c5f0111,
-    0x0c570111, 0x0c600111, 0x02ec0111, 0x02ed0111, 0x02ee0111, 0x02ef0111, 0x02f00111, 0x02f10111,
-    0x02f20111, 0x02f30111, 0x02f40111, 0x02f50111, 0x02f60111, 0x02f70111, 0x02f80111, 0x02f90111,
-    0x09d30111, 0x09d40111, 0x02fa0111, 0x02fb0111, 0x02fc0111, 0x02fd0111, 0x02fe0111, 0x02ff0111,
-    0x02120111, 0x02130111, 0x02150111, 0x021a0111, 0x020e0111, 0x02160111, 0x03000111, 0xffffffff,
-    0x0aad0131, 0x0b0301b1, 0x0ba70181, 0x0c030191, 0x0c5b0121, 0x03010111, 0x03020111, 0x03030111,
-    0x03040111, 0x03050111, 0x03060111, 0x03070111, 0x03080111, 0x03090111, 0x0c590111, 0xffffffff,
+    0x0c070171, 0x02e90113, 0x02eb0113, 0x0ad10111, 0x0c580111, 0x0ad20111, 0x0c5a0111, 0x0c5f0111,
+    0x0c570111, 0x0c600111, 0x02ec0113, 0x02ed0113, 0x02ee0113, 0x02ef0113, 0x02f00113, 0x02f10113,
+    0x02f20113, 0x02f30113, 0x02f40113, 0x02f50113, 0x02f60113, 0x02f70113, 0x02f80113, 0x02f90113,
+    0x09d30111, 0x09d40111, 0x02fa0113, 0x02fb0113, 0x02fc0113, 0x02fd0113, 0x02fe0113, 0x02ff0113,
+    0x02120113, 0x02130113, 0x02150113, 0x021a0113, 0x020e0113, 0x02160113, 0x03000113, 0xffffffff,
+    0x0aad0131, 0x0b0301b1, 0x0ba70181, 0x0c030191, 0x0c5b0121, 0x03010113, 0x03020113, 0x03030113,
+    0x03040113, 0x03050113, 0x03060113, 0x03070113, 0x03080113, 0x03090113, 0x0c590111, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0300 .. 0x03ff */
@@ -184,9 +184,9 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x00004d11, 0x00004e11, 0x00004f11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x02e90111, 0x02ea0111, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0x0c9b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02350111, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x020d0111, 0x02140111, 0x0c910121, 0x025f0111,
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x02e90113, 0x02ea0113, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0x0c9b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02350113, 0xffffffff,
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x020d0113, 0x02140111, 0x0c910121, 0x025f0113,
     0x0c950131, 0x0c990121, 0x0c9b0121, 0xffffffff, 0x0ca20121, 0xffffffff, 0x0ca80121, 0x0cac0121,
     0x0c9b0111, 0x0c910121, 0x0c920131, 0x0c930121, 0x0c940121, 0x0c950131, 0x0c980121, 0x0c990121,
     0x0c9a0131, 0x0c9b0121, 0x0c9d0131, 0x0c9e0121, 0x0c9f0131, 0x0ca00121, 0x0ca10121, 0x0ca20121,
@@ -219,7 +219,7 @@ const unsigned int collation_table[12800] =
     0x0e450121, 0x0e450111, 0x0e410121, 0x0e410111, 0x0e490121, 0x0e490111, 0x0e4d0121, 0x0e4d0111,
     0x0e510121, 0x0e510111, 0x0e550121, 0x0e550111, 0x0e590121, 0x0e590111, 0x0e5d0121, 0x0e5d0111,
     0x0dbd0121, 0x0dbd0111, 0x0ddd0121, 0x0ddd0111, 0x0dd90121, 0x0dd90111, 0x0dd50121, 0x0dd50111,
-    0x0d810121, 0x0d810111, 0x030b0111, 0x00005411, 0x00005511, 0x00005611, 0x00005711, 0xffffffff,
+    0x0d810121, 0x0d810111, 0x030b0113, 0x00005411, 0x00005511, 0x00005611, 0x00005711, 0xffffffff,
     0x00000001, 0x00000001, 0xffffffff, 0xffffffff, 0x0e210121, 0x0e210111, 0x0d890121, 0x0d890111,
     0x0cd50141, 0x0cd50121, 0x0cd90121, 0x0cd90111, 0x0cdd0121, 0x0cdd0111, 0x0d050121, 0x0d050111,
     0x0ced0121, 0x0ced0111, 0x0d350121, 0x0d350111, 0x0d450121, 0x0d450111, 0x0d410121, 0x0d410111,
@@ -247,42 +247,42 @@ const unsigned int collation_table[12800] =
     0x0e9f0121, 0x0ea00121, 0x0ea10121, 0x0ea20121, 0x0ea30131, 0x0ea40121, 0x0ea50121, 0x0ea60121,
     0x0ea70121, 0x0ea80121, 0x0ea90121, 0x0eaa0121, 0x0eab0121, 0x0eac0121, 0x0ead0131, 0x0eae0121,
     0x0eaf0121, 0x0eb00121, 0x0eb10121, 0x0eb20121, 0x0eb30121, 0x0eb40121, 0x0eb50121, 0xffffffff,
-    0xffffffff, 0x0eb60111, 0x02bf0111, 0x02c00111, 0x024d0111, 0x022e0111, 0x02500111, 0x02c10111,
+    0xffffffff, 0x0eb60111, 0x02bf0113, 0x02c00113, 0x024d0113, 0x022e0113, 0x02500113, 0x02c10113,
     0xffffffff, 0x0e900111, 0x0e910111, 0x0e920111, 0x0e930111, 0x0e940111, 0x0e950111, 0x0e960111,
     0x0e970111, 0x0e980111, 0x0e990111, 0x0e9a0111, 0x0e9b0111, 0x0e9c0111, 0x0e9d0111, 0x0e9e0111,
     0x0e9f0111, 0x0ea00111, 0x0ea10111, 0x0ea20111, 0x0ea30111, 0x0ea40111, 0x0ea50111, 0x0ea60111,
     0x0ea70111, 0x0ea80111, 0x0ea90111, 0x0eaa0111, 0x0eab0111, 0x0eac0111, 0x0ead0111, 0x0eae0111,
     0x0eaf0111, 0x0eb00111, 0x0eb10111, 0x0eb20111, 0x0eb30111, 0x0eb40111, 0x0eb50111, 0x0e940121,
-    0xffffffff, 0x02380111, 0x02220111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0x02380113, 0x02220113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
     0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
     0x00000001, 0x00000001, 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
     0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
     0x00005811, 0x00005911, 0x00005a11, 0x00005b11, 0x00005c11, 0x00005d11, 0x00005e11, 0x00005f11,
-    0x00006011, 0x00006111, 0xffffffff, 0x00006211, 0x00006311, 0x00000001, 0x02c20111, 0x00006411,
-    0x02c30111, 0x00006511, 0x00006611, 0x02c40111, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x00006011, 0x00006111, 0xffffffff, 0x00006211, 0x00006311, 0x00000001, 0x02c20113, 0x00006411,
+    0x02c30113, 0x00006511, 0x00006611, 0x02c40113, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0x0ebe0111,
     0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0x0ec30131, 0x0ec30111, 0x0ec40121,
     0x0ec40111, 0x0ec50111, 0x0ec60111, 0x0ec70121, 0x0ec70111, 0x0ec80121, 0x0ec80111, 0x0ec90111,
     0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x0ebc0121, 0x0ebc0121, 0x0ec00121, 0x02c50111, 0x02c60111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x0ebc0121, 0x0ebc0121, 0x0ec00121, 0x02c50113, 0x02c60113, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0600 .. 0x06ff */
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x022f0111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x022f0113, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0x02360111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02510111,
+    0xffffffff, 0xffffffff, 0xffffffff, 0x02360113, 0xffffffff, 0xffffffff, 0xffffffff, 0x02510113,
     0xffffffff, 0x0ecd0111, 0x0ece0111, 0x0ecf0111, 0x0ed20111, 0x0ed30111, 0x0ed50111, 0x0ed60111,
     0x0ed70111, 0x0edb0111, 0x0edc0111, 0x0edd0111, 0x0ee30111, 0x0ee90111, 0x0eea0111, 0x0eee0111,
     0x0eef0111, 0x0ef90111, 0x0efa0111, 0x0f040111, 0x0f050111, 0x0f0a0111, 0x0f0b0111, 0x0f0f0111,
     0x0f100111, 0x0f120111, 0x0f130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x020b0111, 0x0f160111, 0x0f1d0111, 0x0f200111, 0x0f2d0111, 0x0f320111, 0x0f330111, 0x0f390111,
+    0x020b0113, 0x0f160111, 0x0f1d0111, 0x0f200111, 0x0f2d0111, 0x0f320111, 0x0f330111, 0x0f390111,
     0x0f3e0111, 0x0f480111, 0x0f490111, 0x00006811, 0x00006911, 0x00006a11, 0x00006b11, 0x00006c11,
     0x00006d11, 0x00006e11, 0x00006f11, 0x00007011, 0x00007111, 0x00007211, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
-    0x0a130111, 0x0a140111, 0x02ab0111, 0x02300111, 0x02310111, 0x02a30111, 0xffffffff, 0xffffffff,
+    0x0a130111, 0x0a140111, 0x02ab0113, 0x02300113, 0x02310113, 0x02a30113, 0xffffffff, 0xffffffff,
     0x00007311, 0x0ed10111, 0x0ed00111, 0x0ed40111, 0x0ecd0111, 0x0ed60121, 0x0f3e0121, 0x0f420121,
     0x0f490121, 0x0ede0111, 0x0edf0111, 0x0ed80111, 0x0ee00111, 0x0ee10111, 0x0ed90111, 0x0ee20111,
     0x0eda0111, 0x0eeb0111, 0x0eec0111, 0x0ee40111, 0x0ee50111, 0x0eed0111, 0x0ee60111, 0x0ee80111,
@@ -295,15 +295,15 @@ const unsigned int collation_table[12800] =
     0x0f310111, 0x0f380111, 0x0f340111, 0x0f350111, 0x0f360111, 0x0f370111, 0x0f3a0111, 0x0ee70111,
     0x0f3d0111, 0x0f3b0111, 0x0f3b0111, 0x0f3c0111, 0x0f3f0111, 0x0f400111, 0x0f410111, 0x0f420111,
     0x0f430111, 0x0f440111, 0x0f450111, 0x0f460111, 0x0f4a0111, 0x0f4b0111, 0x0f4c0111, 0x0f470111,
-    0x0f4d0111, 0x0f4e0111, 0x0f4f0111, 0x0f4f0111, 0x02570111, 0x0f3d0111, 0x00007411, 0x00007511,
+    0x0f4d0111, 0x0f4e0111, 0x0f4f0111, 0x0f4f0111, 0x02570113, 0x0f3d0111, 0x00007411, 0x00007511,
     0x00007611, 0x00007711, 0x00007811, 0x00007911, 0x00007a11, 0x00000001, 0x00000001, 0x00000001,
     0x00000001, 0x00007b11, 0x00007c11, 0x00007d11, 0x00007e11, 0x0f3e0121, 0x0f490121, 0x00007f11,
-    0x00008011, 0x030c0111, 0x00000001, 0x00000001, 0x00000001, 0x00008111, 0xffffffff, 0xffffffff,
+    0x00008011, 0x030c0113, 0x00000001, 0x00000001, 0x00000001, 0x00008111, 0xffffffff, 0xffffffff,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
     0x0a130111, 0x0a140111, 0x0f090111, 0x0f0e0111, 0x0f150111, 0x0ecd0121, 0x0f320121, 0xffffffff,
     /* 0x0700 .. 0x07ff */
-    0x02660111, 0x02580111, 0x02590111, 0x02390111, 0x023a0111, 0x023b0111, 0x023c0111, 0x023d0111,
-    0x023e0111, 0x02520111, 0x02c70111, 0x02c80111, 0x02c90111, 0x02ca0111, 0xffffffff, 0x00000000,
+    0x02660113, 0x02580113, 0x02590113, 0x02390113, 0x023a0113, 0x023b0113, 0x023c0113, 0x023d0113,
+    0x023e0113, 0x02520113, 0x02c70113, 0x02c80113, 0x02c90113, 0x02ca0113, 0xffffffff, 0x00000000,
     0x0f500111, 0x00008211, 0x0f510111, 0x0f520111, 0x0f520121, 0x0f530111, 0x0f540111, 0x0f550111,
     0x0f560111, 0x0f570111, 0x0f580111, 0x0f590111, 0x0f590121, 0x0f5a0111, 0x0f5b0111, 0x0f5c0111,
     0x0f5d0111, 0x0f5e0111, 0x0f5f0111, 0x0f600111, 0x0f600121, 0x0f610111, 0x0f620111, 0x0f620121,
@@ -347,9 +347,9 @@ const unsigned int collation_table[12800] =
     0x11180111, 0x11190111, 0x111a0111, 0x111b0111, 0x111c0111, 0x111d0111, 0xffffffff, 0xffffffff,
     0x10d60111, 0x0000a211, 0x0000a311, 0x0000a411, 0x0000a511, 0xffffffff, 0xffffffff, 0xffffffff,
     0x10e90111, 0x10ea0111, 0x10eb0111, 0x10f00111, 0x10f50111, 0x10f60111, 0x10fe0111, 0x11020111,
-    0x10de0111, 0x10e00111, 0x11130111, 0x11140111, 0x02600111, 0x02610111, 0x0a0b0111, 0x0a0c0111,
+    0x10de0111, 0x10e00111, 0x11130111, 0x11140111, 0x02600113, 0x02610113, 0x0a0b0111, 0x0a0c0111,
     0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111,
-    0x02cd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x02cd0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0x0000a711, 0x0000a811, 0x0000a911, 0xffffffff, 0x111e0111, 0x111f0111, 0x11200111,
     0x11210111, 0x11220111, 0x11230111, 0x11240111, 0x11260111, 0xffffffff, 0xffffffff, 0x11280111,
@@ -366,7 +366,7 @@ const unsigned int collation_table[12800] =
     0x11250111, 0x11270111, 0x11550111, 0x11560111, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111,
     0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111,
     0x11470111, 0x11490111, 0x09e30111, 0x09e40111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111,
-    0x09c10111, 0x09c20111, 0x030d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x09c10113, 0x09c20113, 0x030d0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0a00 .. 0x0aff */
     0xffffffff, 0xffffffff, 0x0000ab11, 0xffffffff, 0xffffffff, 0x11620111, 0x11630111, 0x11670111,
     0x11680111, 0x115f0111, 0x11600111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11690111,
@@ -415,7 +415,7 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11ee0111, 0x11ef0111, 0xffffffff, 0x11fc0111,
     0x11db0111, 0x11dd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111,
     0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111,
-    0x030e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x030e0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0x0000b611, 0x12120111, 0xffffffff, 0x12130111, 0x12140111, 0x12150111,
     0x12160111, 0x12170111, 0x12180111, 0xffffffff, 0xffffffff, 0xffffffff, 0x12190111, 0x121a0111,
@@ -431,7 +431,7 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0111,
     0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111,
-    0x09c30111, 0x09c40111, 0x09c50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x09c30113, 0x09c40113, 0x09c50113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0c00 .. 0x0cff */
     0xffffffff, 0x0000b711, 0x0000b811, 0x0000b911, 0xffffffff, 0x12420111, 0x12430111, 0x12440111,
@@ -497,7 +497,7 @@ const unsigned int collation_table[12800] =
     0x134e0111, 0x134f0111, 0x13500111, 0x13510111, 0x13520111, 0x13530111, 0x13540111, 0x13550111,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0x13560111, 0x13570111, 0x02ce0111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0x13560111, 0x13570111, 0x02ce0113, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0e00 .. 0x0eff */
     0xffffffff, 0x13580111, 0x13590111, 0x135a0111, 0x135b0111, 0x135c0111, 0x135d0111, 0x135e0111,
@@ -509,9 +509,9 @@ const unsigned int collation_table[12800] =
     0x13870111, 0x13880111, 0x13890111, 0x138a0111, 0x138b0111, 0x138c0111, 0x138d0111, 0x138e0111,
     0x138f0111, 0x13900111, 0x13910111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x09e50111,
     0x13920111, 0x13930111, 0x13940111, 0x13950111, 0x13960111, 0x13970111, 0x09d50111, 0x0000c011,
-    0x0000c111, 0x0000c211, 0x0000c311, 0x0000c411, 0x13980111, 0x13990111, 0x00000001, 0x030f0111,
+    0x0000c111, 0x0000c211, 0x0000c311, 0x0000c411, 0x13980111, 0x13990111, 0x00000001, 0x030f0113,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
-    0x0a130111, 0x0a140111, 0x02cf0111, 0x02d00111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x0a130111, 0x0a140111, 0x02cf0113, 0x02d00113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -533,14 +533,14 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x0f00 .. 0x0fff */
-    0x140e0121, 0x03100111, 0x03110111, 0x03120111, 0x02d10111, 0x02d20111, 0x02d30111, 0x02d40111,
-    0x02d50111, 0x02d60111, 0x02d70111, 0x02d80111, 0x02d80121, 0x02d90111, 0x02da0111, 0x02db0111,
-    0x02dc0111, 0x02dd0111, 0x02de0111, 0x03130111, 0x02460111, 0x03140111, 0x03150111, 0x03160111,
-    0x00000001, 0x00000001, 0x03170111, 0x03180111, 0x03190111, 0x031a0111, 0x031b0111, 0x031c0111,
+    0x140e0121, 0x03100113, 0x03110113, 0x03120113, 0x02d10113, 0x02d20113, 0x02d30113, 0x02d40113,
+    0x02d50113, 0x02d60113, 0x02d70113, 0x02d80113, 0x02d80123, 0x02d90113, 0x02da0113, 0x02db0113,
+    0x02dc0113, 0x02dd0113, 0x02de0113, 0x03130113, 0x02460113, 0x03140113, 0x03150113, 0x03160113,
+    0x00000001, 0x00000001, 0x03170113, 0x03180113, 0x03190113, 0x031a0113, 0x031b0113, 0x031c0113,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
     0x0a130111, 0x0a140111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111,
-    0x0a120111, 0x0a130111, 0x0a140111, 0x0a0b0111, 0x031d0111, 0x00000001, 0x031e0111, 0x00000001,
-    0x031f0111, 0x0000c911, 0x02800111, 0x02810111, 0x02820111, 0x02830111, 0x03200111, 0x03210111,
+    0x0a120111, 0x0a130111, 0x0a140111, 0x0a0b0111, 0x031d0113, 0x00000001, 0x031e0113, 0x00000001,
+    0x031f0113, 0x0000c911, 0x02800113, 0x02810113, 0x02820113, 0x02830113, 0x03200113, 0x03210113,
     0x13ca0111, 0x13cc0111, 0x13ce0111, 0x13ce0111, 0x13d00111, 0x13d20111, 0x13d40111, 0x13d60111,
     0xffffffff, 0x13d80111, 0x13da0111, 0x13dc0111, 0x13de0111, 0x13de0111, 0x13e00111, 0x13e20111,
     0x13e40111, 0x13e60111, 0x13e60111, 0x13e80111, 0x13ea0111, 0x13ec0111, 0x13ee0111, 0x13ee0111,
@@ -549,16 +549,16 @@ const unsigned int collation_table[12800] =
     0x140e0111, 0x13ca0111, 0x14020121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0x14140111, 0x14150111, 0x14160111, 0x14190111, 0x141a0111, 0x141b0111, 0x141c0111,
     0x141d0111, 0x141e0111, 0x141f0111, 0x14200111, 0x14210111, 0x14220111, 0x0000ca11, 0x0000cb11,
-    0x14170111, 0x14180111, 0x00000001, 0x00000001, 0x14230111, 0x02df0111, 0x00000001, 0x00000001,
+    0x14170111, 0x14180111, 0x00000001, 0x00000001, 0x14230111, 0x02df0113, 0x00000001, 0x00000001,
     0x14100111, 0x14110111, 0x14120111, 0x14130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x13cb0111, 0x13cd0111, 0x13cf0111, 0x13cf0111, 0x13d10111, 0x13d30111, 0x13d50111, 0x13d70111,
     0xffffffff, 0x13d90111, 0x13db0111, 0x13dd0111, 0x13df0111, 0x13df0111, 0x13e10111, 0x13e30111,
     0x13e50111, 0x13e70111, 0x13e70111, 0x13e90111, 0x13eb0111, 0x13ed0111, 0x13ef0111, 0x13ef0111,
     0x13f10111, 0x13f30111, 0x13f50111, 0x13f70111, 0x13f70111, 0x13f90111, 0x13fb0111, 0x13fd0111,
     0x13ff0111, 0x14010111, 0x14030111, 0x14050111, 0x14070111, 0x14090111, 0x140b0111, 0x140d0111,
-    0x140f0111, 0x13cb0111, 0x13f90121, 0x14010121, 0x14030121, 0xffffffff, 0x03220111, 0x03230111,
-    0x03240111, 0x03250111, 0x03260111, 0x03270111, 0x03280111, 0x03290111, 0x00000001, 0x032a0111,
-    0x032b0111, 0x032c0111, 0x032d0111, 0x032e0111, 0x032f0111, 0xffffffff, 0xffffffff, 0x03300111,
+    0x140f0111, 0x13cb0111, 0x13f90121, 0x14010121, 0x14030121, 0xffffffff, 0x03220113, 0x03230113,
+    0x03240113, 0x03250113, 0x03260113, 0x03270113, 0x03280113, 0x03290113, 0x00000001, 0x032a0113,
+    0x032b0113, 0x032c0113, 0x032d0113, 0x032e0113, 0x032f0113, 0xffffffff, 0xffffffff, 0x03300113,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -575,7 +575,7 @@ const unsigned int collation_table[12800] =
     0x14570111, 0x14580111, 0x14590111, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000cc11, 0x0000cd11,
     0x0000ce11, 0x145e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
-    0x0a130111, 0x0a140111, 0x02620111, 0x02630111, 0x02e00111, 0x02e10111, 0x02e20111, 0x02e30111,
+    0x0a130111, 0x0a140111, 0x02620113, 0x02630113, 0x02e00113, 0x02e10113, 0x02e20113, 0x02e30113,
     0x14420111, 0x14430111, 0x144f0111, 0x14500111, 0x14510111, 0x14520111, 0x145a0111, 0x145b0111,
     0x145c0111, 0x145d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -597,7 +597,7 @@ const unsigned int collation_table[12800] =
     0x0e7b0111, 0x0e7c0111, 0x0e7d0111, 0x0e7f0111, 0x0e800111, 0x0e810111, 0x0e820111, 0x0e830111,
     0x0e840111, 0x0e850111, 0x0e860111, 0x0e870111, 0x0e880111, 0x0e890111, 0x0e8a0111, 0x0e8c0111,
     0x0e8d0111, 0x0e700111, 0x0e770111, 0x0e7e0111, 0x0e8b0111, 0x0e8e0111, 0x0e8f0111, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0x02670111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0xffffffff, 0x02670113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x1100 .. 0x11ff */
     0x18310111, 0x18320111, 0x18330111, 0x18340111, 0x18350111, 0x18360111, 0x18370111, 0x18380111,
     0x18390111, 0x183a0111, 0x183b0111, 0x183c0111, 0x183d0111, 0x183e0111, 0x183f0111, 0x18400111,
@@ -677,10 +677,10 @@ const unsigned int collation_table[12800] =
     0x10c30111, 0x10c40111, 0x10c50111, 0x10c60111, 0x10c70111, 0x10c80111, 0x10c90111, 0x10ca0111,
     0x10cb0111, 0x10cc0111, 0x10cd0111, 0x10ce0111, 0x10cf0111, 0x10d00111, 0x10d10111, 0x10d20111,
     0x10d30111, 0x10d40111, 0x10d50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x023f0111, 0x025a0111, 0x02400111, 0x02410111, 0x02420111, 0x02430111, 0x02530111,
-    0x02680111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
-    0x0a130111, 0x0a140111, 0x09c60111, 0x09c70111, 0x09c80111, 0x09c90111, 0x09ca0111, 0x09cb0111,
-    0x09cc0111, 0x09cd0111, 0x09ce0111, 0x09cf0111, 0x09d00111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0x023f0113, 0x025a0113, 0x02400113, 0x02410113, 0x02420113, 0x02430113, 0x02530113,
+    0x02680113, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
+    0x0a130111, 0x0a140111, 0x09c60113, 0x09c70113, 0x09c80113, 0x09c90113, 0x09ca0113, 0x09cb0113,
+    0x09cc0113, 0x09cd0113, 0x09ce0113, 0x09cf0113, 0x09d00113, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -777,13 +777,13 @@ const unsigned int collation_table[12800] =
     0x17d40111, 0x17d50111, 0x17d60111, 0x17d70111, 0x17d80111, 0x17d90111, 0x17da0111, 0x17db0111,
     0x17dc0111, 0x17dd0111, 0x17de0111, 0x17df0111, 0x17e00111, 0x17e10111, 0x17e20111, 0x17e30111,
     0x17e40111, 0x17e50111, 0x17e60111, 0x17e70111, 0x17e80111, 0x17e90111, 0x17ea0111, 0x17eb0111,
-    0x17ec0111, 0x17ed0111, 0x17ee0111, 0x17ef0111, 0x17f00111, 0x03310111, 0x025d0111, 0x16f90111,
+    0x17ec0111, 0x17ed0111, 0x17ee0111, 0x17ef0111, 0x17f00111, 0x03310113, 0x025d0113, 0x16f90111,
     0x170a0111, 0x17130111, 0x17140111, 0x17150111, 0x17160111, 0x17170111, 0x17180111, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x020a0111, 0x17f10111, 0x17f20111, 0x17f30111, 0x17f40111, 0x17f50111, 0x17f60111, 0x17f70111,
+    0x020a0113, 0x17f10111, 0x17f20111, 0x17f30111, 0x17f40111, 0x17f50111, 0x17f60111, 0x17f70111,
     0x17f80111, 0x17f90111, 0x17fa0111, 0x17fb0111, 0x17fc0111, 0x17fd0111, 0x17fe0111, 0x17ff0111,
     0x18000111, 0x18010111, 0x18020111, 0x18030111, 0x18040111, 0x18050111, 0x18060111, 0x18070111,
-    0x18080111, 0x18090111, 0x180a0111, 0x02840111, 0x02850111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x18080111, 0x18090111, 0x180a0111, 0x02840113, 0x02850113, 0xffffffff, 0xffffffff, 0xffffffff,
     0x180b0111, 0x180b0121, 0x180c0111, 0x18280111, 0x180c0121, 0x180c0121, 0x180d0111, 0x180d0121,
     0x180e0111, 0x180e0121, 0x18260111, 0x18270111, 0x180e0121, 0x180e0121, 0x180e0121, 0x180f0111,
     0x18100111, 0x18110111, 0x18120111, 0x18120121, 0x18120121, 0x18120121, 0x18120121, 0x18130111,
@@ -793,7 +793,7 @@ const unsigned int collation_table[12800] =
     0x181e0121, 0x181e0121, 0x181f0111, 0x181f0121, 0x181f0121, 0x181b0121, 0x18200111, 0x18210111,
     0x18210121, 0x18210121, 0x18220111, 0x18220121, 0x18230111, 0x18230121, 0x18240111, 0x18250111,
     0x18290111, 0x182d0111, 0x182e0111, 0x182a0111, 0x182c0111, 0x182f0111, 0x18300111, 0x18300121,
-    0x18300121, 0x18140121, 0x181d0121, 0x02480111, 0x02490111, 0x024a0111, 0x18190121, 0x18210121,
+    0x18300121, 0x18140121, 0x181d0121, 0x02480113, 0x02490113, 0x024a0113, 0x18190121, 0x18210121,
     0x180d0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x1700 .. 0x17ff */
@@ -823,15 +823,15 @@ const unsigned int collation_table[12800] =
     0x14970111, 0x14980111, 0x14990111, 0x149a0111, 0x149b0111, 0x149c0111, 0x149d0111, 0x149e0111,
     0x149f0111, 0x14a00111, 0x14a10111, 0x14a20111, 0x14a30111, 0x14a40111, 0x0000cf11, 0x0000d011,
     0x0000d111, 0x0000d211, 0x0000d311, 0x0000d411, 0x0000d511, 0x0000d611, 0x0000d711, 0x0000d811,
-    0x0000d911, 0x0000da11, 0x14a50111, 0x0000db11, 0x02640111, 0x02650111, 0x02470111, 0x02e40111,
-    0x02e50111, 0x02e60111, 0x02e70111, 0x09e60111, 0x02e80111, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x0000d911, 0x0000da11, 0x14a50111, 0x0000db11, 0x02640113, 0x02650113, 0x02470113, 0x02e40113,
+    0x02e50113, 0x02e60113, 0x02e70113, 0x09e60111, 0x02e80113, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
     0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x1800 .. 0x18ff */
-    0x02cb0111, 0x02560111, 0x02320111, 0x025b0111, 0x02440111, 0x02450111, 0x02230111, 0x02240111,
-    0x02330111, 0x025c0111, 0x02cc0111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
+    0x02cb0113, 0x02560113, 0x02320113, 0x025b0113, 0x02440113, 0x02450113, 0x02230113, 0x02240113,
+    0x02330113, 0x025c0113, 0x02cc0113, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
     0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
     0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x14ae0111, 0x14b00111, 0x14b30111, 0x14b90111, 0x14bb0111, 0x14be0111, 0x14c00111, 0x14c30111,
@@ -919,34 +919,34 @@ const unsigned int collation_table[12800] =
     0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111,
     0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121,
     0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0xffffffff, 0x0c910111, 0x0c910111,
-    0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x02170111, 0x0c9b0111, 0x02170111,
-    0x021d0111, 0x02140111, 0x0c990111, 0x0c990111, 0x0c990111, 0xffffffff, 0x0c990111, 0x0c990111,
+    0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x02170113, 0x0c9b0111, 0x02170113,
+    0x021d0113, 0x02140111, 0x0c990111, 0x0c990111, 0x0c990111, 0xffffffff, 0x0c990111, 0x0c990111,
     0x0c950131, 0x0c950131, 0x0c990121, 0x0c990121, 0x0c990121, 0x02170111, 0x02170111, 0x02170111,
     0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0xffffffff, 0xffffffff, 0x0c9b0111, 0x0c9b0111,
     0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0xffffffff, 0x02180111, 0x02180111, 0x02180111,
     0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca50111, 0x0ca50111, 0x0ca80111, 0x0ca80111,
-    0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca50131, 0x02140111, 0x02140111, 0x020c0111,
+    0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca50131, 0x02140111, 0x02140111, 0x020c0113,
     0xffffffff, 0xffffffff, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0x0cac0111, 0x0cac0111,
-    0x0ca20121, 0x0ca20121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x020d0111, 0x02180111, 0xffffffff,
+    0x0ca20121, 0x0ca20121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x020d0113, 0x02180113, 0xffffffff,
     /* 0x2000 .. 0x20ff */
-    0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090141,
-    0x02090131, 0x02090131, 0x02090131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x02250111, 0x02250121, 0x02260111, 0x02270111, 0x02280111, 0x02290111, 0x03a90111, 0x021c0111,
-    0x026a0111, 0x026b0111, 0x026c0111, 0x026d0111, 0x02710111, 0x02720111, 0x02730111, 0x02740111,
-    0x02ae0111, 0x02af0111, 0x02b00111, 0x02b10111, 0x02550131, 0x02550131, 0x02550131, 0x02b20111,
-    0x02070111, 0x02080111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02090141,
-    0x02ac0111, 0x02ad0111, 0x02b60111, 0x02b60121, 0x02b60121, 0x02b70111, 0x02b70121, 0x02b70121,
-    0x02b90111, 0x026e0111, 0x026f0111, 0x02ba0111, 0x024b0131, 0x02540111, 0x02110111, 0x02bb0111,
-    0x02bc0111, 0x02bd0111, 0x02be0111, 0x02b30111, 0x02a50111, 0x02860111, 0x02870111, 0xffffffff,
-    0x024e0131, 0x024b0131, 0x02a80111, 0x029e0111, 0x02b40111, 0x02b50111, 0xffffffff, 0xffffffff,
+    0x02090133, 0x02090133, 0x02090133, 0x02090133, 0x02090133, 0x02090133, 0x02090133, 0x02090143,
+    0x02090133, 0x02090133, 0x02090133, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x02250113, 0x02250123, 0x02260113, 0x02270113, 0x02280113, 0x02290113, 0x03a90113, 0x021c0113,
+    0x026a0113, 0x026b0113, 0x026c0113, 0x026d0113, 0x02710113, 0x02720113, 0x02730113, 0x02740113,
+    0x02ae0113, 0x02af0113, 0x02b00113, 0x02b10113, 0x02550133, 0x02550133, 0x02550133, 0x02b20113,
+    0x02070113, 0x02080113, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02090143,
+    0x02ac0113, 0x02ad0113, 0x02b60113, 0x02b60123, 0x02b60123, 0x02b70113, 0x02b70123, 0x02b70123,
+    0x02b90113, 0x026e0113, 0x026f0113, 0x02ba0113, 0x024b0133, 0x02540113, 0x02110113, 0x02bb0113,
+    0x02bc0113, 0x02bd0113, 0x02be0113, 0x02b30113, 0x02a50113, 0x02860113, 0x02870113, 0xffffffff,
+    0x024e0133, 0x024b0133, 0x02a80113, 0x029e0113, 0x02b40113, 0x02b50113, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0a0b0151, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0f0151, 0x0a100151, 0x0a110151, 0x0a120151,
-    0x0a130151, 0x0a140151, 0x039f0151, 0x03ab0121, 0x03a40141, 0x027a0151, 0x027b0141, 0x0b3301a1,
+    0x0a130151, 0x0a140151, 0x039f0153, 0x03ab0123, 0x03a40143, 0x027a0153, 0x027b0143, 0x0b3301a1,
     0x0a0b0161, 0x0a0c0161, 0x0a0d0161, 0x0a0e0161, 0x0a0f0161, 0x0a100161, 0x0a110161, 0x0a120161,
-    0x0a130161, 0x0a140161, 0x039f0161, 0x03ab0131, 0x03a40151, 0x027a0161, 0x027b0151, 0xffffffff,
+    0x0a130161, 0x0a140161, 0x039f0163, 0x03ab0133, 0x03a40153, 0x027a0163, 0x027b0153, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x09e70111, 0x09e80111, 0x09e90111, 0x09ea0111, 0x09eb0111, 0x09ec0111, 0x09ed0111, 0x09ee0111,
@@ -962,8 +962,8 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2100 .. 0x21ff */
-    0x0a150131, 0x0a150131, 0x0a3d0181, 0x030a0121, 0x09f60111, 0x0a3d0131, 0x0a3d0131, 0x0a710131,
-    0x09f70111, 0x030a0121, 0x0a990131, 0x0ab90171, 0x0ab90171, 0x0ab90171, 0x0ab90131, 0x0ac50121,
+    0x0a150131, 0x0a150131, 0x0a3d0181, 0x030a0123, 0x09f60111, 0x0a3d0131, 0x0a3d0131, 0x0a710131,
+    0x09f70111, 0x030a0123, 0x0a990131, 0x0ab90171, 0x0ab90171, 0x0ab90171, 0x0ab90131, 0x0ac50121,
     0x0ad30191, 0x0ad30191, 0x0b030191, 0x0b030141, 0x09f80111, 0x0b330181, 0x0b330171, 0x09f90111,
     0x09fa0111, 0x0b670161, 0x0b730161, 0x0b7f0171, 0x0b7f0171, 0x0b7f0171, 0x09fb0111, 0x09fc0111,
     0x0ba70181, 0x0bbf0171, 0x0bbf0191, 0x09fd0111, 0x0c130161, 0x09fe0111, 0x0cac0121, 0x09ff0111,
@@ -980,74 +980,74 @@ const unsigned int collation_table[12800] =
     0x0ad30131, 0x0c030131, 0x0c030131, 0x0c030131, 0x0b030131, 0x0a3d0131, 0x0a490131, 0x0b2b0131,
     0x0a040111, 0x0a050111, 0x0a060111, 0x0a070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x03320111, 0x03340111, 0x03330111, 0x03350111, 0x03360111, 0x03370111, 0x03380111, 0x03390111,
-    0x033a0111, 0x033b0111, 0x03320111, 0x03330111, 0x033c0111, 0x033d0111, 0x033e0111, 0x033f0111,
-    0x03400111, 0x03410111, 0x03420111, 0x03430111, 0x03440111, 0x03450111, 0x03460111, 0x03470111,
-    0x03480111, 0x03490111, 0x034a0111, 0x034b0111, 0x034c0111, 0x034d0111, 0x03360111, 0x034e0111,
-    0x034f0111, 0x03500111, 0x03510111, 0x03520111, 0x03530111, 0x03540111, 0x03550111, 0x03560111,
-    0x03570111, 0x03580111, 0x03590111, 0x035a0111, 0x035b0111, 0x035c0111, 0x035d0111, 0x035e0111,
-    0x035f0111, 0x03600111, 0x03610111, 0x03620111, 0x03630111, 0x03640111, 0x03650111, 0x03660111,
-    0x03670111, 0x03680111, 0x03690111, 0x036a0111, 0x036b0111, 0x036c0111, 0x03700111, 0x036e0111,
-    0x036c0111, 0x036d0111, 0x036e0111, 0x036f0111, 0x03700111, 0x03710111, 0x03720111, 0x03730111,
-    0x03740111, 0x03750111, 0x03760111, 0x03770111, 0x03780111, 0x03790111, 0x037a0111, 0x037b0111,
-    0x037c0111, 0x037d0111, 0x037e0111, 0x037f0111, 0x03800111, 0x03810111, 0x03820111, 0x03830111,
-    0x03840111, 0x03850111, 0x03860111, 0x03870111, 0x03880111, 0x03890111, 0x038a0111, 0x038b0111,
-    0x038c0111, 0x038d0111, 0x038e0111, 0x038f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x03320113, 0x03340113, 0x03330113, 0x03350113, 0x03360113, 0x03370113, 0x03380113, 0x03390113,
+    0x033a0113, 0x033b0113, 0x03320111, 0x03330111, 0x033c0113, 0x033d0113, 0x033e0113, 0x033f0113,
+    0x03400113, 0x03410113, 0x03420113, 0x03430113, 0x03440113, 0x03450113, 0x03460113, 0x03470113,
+    0x03480113, 0x03490113, 0x034a0113, 0x034b0113, 0x034c0113, 0x034d0113, 0x03360111, 0x034e0113,
+    0x034f0113, 0x03500113, 0x03510113, 0x03520113, 0x03530113, 0x03540113, 0x03550113, 0x03560113,
+    0x03570113, 0x03580113, 0x03590113, 0x035a0113, 0x035b0113, 0x035c0113, 0x035d0113, 0x035e0113,
+    0x035f0113, 0x03600113, 0x03610113, 0x03620113, 0x03630113, 0x03640113, 0x03650113, 0x03660113,
+    0x03670113, 0x03680113, 0x03690113, 0x036a0113, 0x036b0113, 0x036c0111, 0x03700111, 0x036e0111,
+    0x036c0113, 0x036d0113, 0x036e0113, 0x036f0113, 0x03700113, 0x03710113, 0x03720113, 0x03730113,
+    0x03740113, 0x03750113, 0x03760113, 0x03770113, 0x03780113, 0x03790113, 0x037a0113, 0x037b0113,
+    0x037c0113, 0x037d0113, 0x037e0113, 0x037f0113, 0x03800113, 0x03810113, 0x03820113, 0x03830113,
+    0x03840113, 0x03850113, 0x03860113, 0x03870113, 0x03880113, 0x03890113, 0x038a0113, 0x038b0113,
+    0x038c0113, 0x038d0113, 0x038e0113, 0x038f0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2200 .. 0x22ff */
-    0x03900111, 0x03910111, 0x03920111, 0x03930111, 0x03930111, 0x03940111, 0x03950111, 0x03960111,
-    0x03970111, 0x03970111, 0x03980111, 0x03990111, 0x03990111, 0x039a0111, 0x039b0111, 0x039c0111,
-    0x039d0111, 0x039e0111, 0x03ab0111, 0x03ac0111, 0x03ad0111, 0x03ae0111, 0x03af0111, 0x03b00111,
-    0x03b10111, 0x03b20111, 0x03b30111, 0x03b40111, 0x03b50111, 0x03b60111, 0x03b70111, 0x03b80111,
-    0x03b90111, 0x03ba0111, 0x03bb0111, 0x03bc0111, 0x03bc0111, 0x03bd0111, 0x03bd0111, 0x03be0111,
-    0x03bf0111, 0x03c00111, 0x03c10111, 0x03c20111, 0x03c20121, 0x03c20121, 0x03c30111, 0x03c30121,
-    0x03c30121, 0x03c40111, 0x03c50111, 0x03c60111, 0x03c70111, 0x03c80111, 0x03c90111, 0x03ca0111,
-    0x03cb0111, 0x03cc0111, 0x03cd0111, 0x03ce0111, 0x03cf0111, 0x03d00111, 0x03d10111, 0x03d20111,
-    0x03d30111, 0x03cf0111, 0x03d40111, 0x03d50111, 0x03d50111, 0x03d60111, 0x03d70111, 0x03d60111,
-    0x03d80111, 0x03d80111, 0x03d90111, 0x03da0111, 0x03db0111, 0x03dc0111, 0x03dd0111, 0x03de0111,
-    0x03df0111, 0x03e00111, 0x03e10111, 0x03e20111, 0x03e30111, 0x03e40111, 0x03e50111, 0x03e60111,
-    0x03e70111, 0x03e80111, 0x03e90111, 0x03ea0111, 0x03eb0111, 0x03ec0111, 0x03ed0111, 0x03ee0111,
-    0x03a40111, 0x03ef0111, 0x03ef0111, 0x03f00111, 0x03f10111, 0x03f20111, 0x03f30111, 0x03f40111,
-    0x03f50111, 0x03f60111, 0x03f70111, 0x03f80111, 0x03f90111, 0x03dc0111, 0x03a30111, 0x03a50111,
-    0x03f10111, 0x03f20111, 0x03fa0111, 0x03fb0111, 0x03fa0111, 0x03fb0111, 0x03fc0111, 0x03fd0111,
-    0x03fc0111, 0x03fd0111, 0x03fe0111, 0x03ff0111, 0x04000111, 0x04010111, 0x04020111, 0x04030111,
-    0x03fe0111, 0x03ff0111, 0x04040111, 0x04050111, 0x04040111, 0x04050111, 0x04060111, 0x04070111,
-    0x04060111, 0x04070111, 0x04080111, 0x04090111, 0x040a0111, 0x040b0111, 0x040c0111, 0x040d0111,
-    0x040e0111, 0x040f0111, 0x04100111, 0x04110111, 0x04120111, 0x04130111, 0x04140111, 0x04150111,
-    0x04160111, 0x04170111, 0x04180111, 0x04190111, 0x041a0111, 0x041b0111, 0x041c0111, 0x041d0111,
-    0x041e0111, 0x041f0111, 0x04200111, 0x04210111, 0x04220111, 0x04230111, 0x04240111, 0x04250111,
-    0x04260111, 0x04270111, 0x04280111, 0x04290111, 0x04200111, 0x04260111, 0x04270111, 0x04290111,
-    0x042a0111, 0x042b0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04300111, 0x04310111,
-    0x04320111, 0x04330111, 0x04340111, 0x04350111, 0x04360111, 0x04370111, 0x04380111, 0x04390111,
-    0x043a0111, 0x043b0111, 0x043c0111, 0x043d0111, 0x043e0111, 0x043f0111, 0x04400111, 0x04410111,
-    0x04420111, 0x04430111, 0x04440111, 0x04450111, 0x04460111, 0x04470111, 0x04480111, 0x04490111,
-    0x044a0111, 0x044b0111, 0x044c0111, 0x044d0111, 0x044e0111, 0x044f0111, 0x04500111, 0x04510111,
-    0x04520111, 0x04530111, 0x04540111, 0x04550111, 0x04560111, 0x04570111, 0x04580111, 0x04590111,
-    0x04000111, 0x04010111, 0x040f0111, 0x04100111, 0x045a0111, 0x045b0111, 0x045c0111, 0x045d0111,
-    0x045e0111, 0x045f0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04600111, 0x04610111,
-    0x04620111, 0x04630111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x03900113, 0x03910113, 0x03920113, 0x03930113, 0x03930111, 0x03940113, 0x03950113, 0x03960113,
+    0x03970113, 0x03970111, 0x03980113, 0x03990113, 0x03990111, 0x039a0113, 0x039b0113, 0x039c0113,
+    0x039d0113, 0x039e0113, 0x03ab0113, 0x03ac0113, 0x03ad0113, 0x03ae0113, 0x03af0113, 0x03b00113,
+    0x03b10113, 0x03b20113, 0x03b30113, 0x03b40113, 0x03b50113, 0x03b60113, 0x03b70113, 0x03b80113,
+    0x03b90113, 0x03ba0113, 0x03bb0113, 0x03bc0113, 0x03bc0111, 0x03bd0113, 0x03bd0111, 0x03be0113,
+    0x03bf0113, 0x03c00113, 0x03c10113, 0x03c20113, 0x03c20123, 0x03c20123, 0x03c30113, 0x03c30123,
+    0x03c30123, 0x03c40113, 0x03c50113, 0x03c60113, 0x03c70113, 0x03c80113, 0x03c90113, 0x03ca0113,
+    0x03cb0113, 0x03cc0113, 0x03cd0113, 0x03ce0113, 0x03cf0113, 0x03d00113, 0x03d10113, 0x03d20113,
+    0x03d30113, 0x03cf0111, 0x03d40113, 0x03d50113, 0x03d50111, 0x03d60113, 0x03d70113, 0x03d60111,
+    0x03d80113, 0x03d80111, 0x03d90113, 0x03da0113, 0x03db0113, 0x03dc0113, 0x03dd0113, 0x03de0113,
+    0x03df0113, 0x03e00113, 0x03e10113, 0x03e20113, 0x03e30113, 0x03e40113, 0x03e50113, 0x03e60113,
+    0x03e70113, 0x03e80113, 0x03e90113, 0x03ea0113, 0x03eb0113, 0x03ec0113, 0x03ed0113, 0x03ee0113,
+    0x03a40111, 0x03ef0113, 0x03ef0111, 0x03f00113, 0x03f10113, 0x03f20113, 0x03f30113, 0x03f40113,
+    0x03f50113, 0x03f60113, 0x03f70113, 0x03f80113, 0x03f90113, 0x03dc0111, 0x03a30111, 0x03a50111,
+    0x03f10111, 0x03f20111, 0x03fa0113, 0x03fb0113, 0x03fa0111, 0x03fb0111, 0x03fc0113, 0x03fd0113,
+    0x03fc0111, 0x03fd0111, 0x03fe0113, 0x03ff0113, 0x04000113, 0x04010113, 0x04020113, 0x04030113,
+    0x03fe0111, 0x03ff0111, 0x04040113, 0x04050113, 0x04040111, 0x04050111, 0x04060113, 0x04070113,
+    0x04060111, 0x04070111, 0x04080113, 0x04090113, 0x040a0113, 0x040b0113, 0x040c0113, 0x040d0113,
+    0x040e0113, 0x040f0113, 0x04100113, 0x04110113, 0x04120113, 0x04130113, 0x04140113, 0x04150113,
+    0x04160113, 0x04170113, 0x04180113, 0x04190113, 0x041a0113, 0x041b0113, 0x041c0113, 0x041d0113,
+    0x041e0113, 0x041f0113, 0x04200113, 0x04210113, 0x04220113, 0x04230113, 0x04240113, 0x04250113,
+    0x04260113, 0x04270113, 0x04280113, 0x04290113, 0x04200111, 0x04260111, 0x04270111, 0x04290111,
+    0x042a0113, 0x042b0113, 0x042c0113, 0x042d0113, 0x042e0113, 0x042f0113, 0x04300113, 0x04310113,
+    0x04320113, 0x04330113, 0x04340113, 0x04350113, 0x04360113, 0x04370113, 0x04380113, 0x04390113,
+    0x043a0113, 0x043b0113, 0x043c0113, 0x043d0113, 0x043e0113, 0x043f0113, 0x04400113, 0x04410113,
+    0x04420113, 0x04430113, 0x04440113, 0x04450113, 0x04460113, 0x04470113, 0x04480113, 0x04490113,
+    0x044a0113, 0x044b0113, 0x044c0113, 0x044d0113, 0x044e0113, 0x044f0113, 0x04500113, 0x04510113,
+    0x04520113, 0x04530113, 0x04540113, 0x04550113, 0x04560113, 0x04570113, 0x04580113, 0x04590113,
+    0x04000111, 0x04010111, 0x040f0111, 0x04100111, 0x045a0113, 0x045b0113, 0x045c0113, 0x045d0113,
+    0x045e0113, 0x045f0113, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04600113, 0x04610113,
+    0x04620113, 0x04630113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2300 .. 0x23ff */
-    0x04640111, 0x04650111, 0x04660111, 0x04670111, 0x04680111, 0x04690111, 0x046a0111, 0x046b0111,
-    0x046c0111, 0x046d0111, 0x046e0111, 0x046f0111, 0x04700111, 0x04710111, 0x04720111, 0x04730111,
-    0x04740111, 0x04750111, 0x04760111, 0x04770111, 0x04780111, 0x04790111, 0x047a0111, 0x047b0111,
-    0x047c0111, 0x047d0111, 0x047e0111, 0x047f0111, 0x04800111, 0x04810111, 0x04820111, 0x04830111,
-    0x04840111, 0x04850111, 0x04860111, 0x04870111, 0x04880111, 0x04890111, 0x048a0111, 0x048b0111,
-    0x048c0111, 0x02880111, 0x02890111, 0x048d0111, 0x048e0111, 0x048f0111, 0x04900111, 0x04910111,
-    0x04920111, 0x04930111, 0x04940111, 0x04950111, 0x04960111, 0x04970111, 0x04980111, 0x04990111,
-    0x049a0111, 0x049b0111, 0x049c0111, 0x049d0111, 0x049e0111, 0x049f0111, 0x04a00111, 0x04a10111,
-    0x04a20111, 0x04a30111, 0x04a40111, 0x04a50111, 0x04a60111, 0x04a70111, 0x04a80111, 0x04a90111,
-    0x04aa0111, 0x04ab0111, 0x04ac0111, 0x04ad0111, 0x04ae0111, 0x04af0111, 0x04b00111, 0x04b10111,
-    0x04b20111, 0x04b30111, 0x04b40111, 0x04b50111, 0x04b60111, 0x04b70111, 0x04b80111, 0x04b90111,
-    0x04ba0111, 0x04bb0111, 0x04bc0111, 0x04bd0111, 0x04be0111, 0x04bf0111, 0x04c00111, 0x04c10111,
-    0x04c20111, 0x04c30111, 0x04c40111, 0x04c50111, 0x04c60111, 0x04c70111, 0x04c80111, 0x04c90111,
-    0x04ca0111, 0x04cb0111, 0x04cc0111, 0x04cd0111, 0x04ce0111, 0x04cf0111, 0x04d00111, 0x04d10111,
-    0x04d20111, 0x04d30111, 0x04d40111, 0x04d50111, 0x04d60111, 0x04d70111, 0x04d80111, 0x04d90111,
-    0x04da0111, 0x04db0111, 0x04dc0111, 0x04dd0111, 0xffffffff, 0x04de0111, 0x04df0111, 0x04e00111,
-    0x04e10111, 0x04e20111, 0x04e30111, 0x04e40111, 0x04e50111, 0x04e60111, 0x04e70111, 0x04e80111,
-    0x04e90111, 0x04ea0111, 0x04eb0111, 0x04ec0111, 0x04ed0111, 0x04ee0111, 0x04ef0111, 0x04f00111,
-    0x04f10111, 0x04f20111, 0x04f30111, 0x04f40111, 0x04f50111, 0x04f60111, 0x04f70111, 0x04f80111,
-    0x04f90111, 0x04fa0111, 0x04fb0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x04640113, 0x04650113, 0x04660113, 0x04670113, 0x04680113, 0x04690113, 0x046a0113, 0x046b0113,
+    0x046c0113, 0x046d0113, 0x046e0113, 0x046f0113, 0x04700113, 0x04710113, 0x04720113, 0x04730113,
+    0x04740113, 0x04750113, 0x04760113, 0x04770113, 0x04780113, 0x04790113, 0x047a0113, 0x047b0113,
+    0x047c0113, 0x047d0113, 0x047e0113, 0x047f0113, 0x04800113, 0x04810113, 0x04820113, 0x04830113,
+    0x04840113, 0x04850113, 0x04860113, 0x04870113, 0x04880113, 0x04890113, 0x048a0113, 0x048b0113,
+    0x048c0113, 0x02880113, 0x02890113, 0x048d0113, 0x048e0113, 0x048f0113, 0x04900113, 0x04910113,
+    0x04920113, 0x04930113, 0x04940113, 0x04950113, 0x04960113, 0x04970113, 0x04980113, 0x04990113,
+    0x049a0113, 0x049b0113, 0x049c0113, 0x049d0113, 0x049e0113, 0x049f0113, 0x04a00113, 0x04a10113,
+    0x04a20113, 0x04a30113, 0x04a40113, 0x04a50113, 0x04a60113, 0x04a70113, 0x04a80113, 0x04a90113,
+    0x04aa0113, 0x04ab0113, 0x04ac0113, 0x04ad0113, 0x04ae0113, 0x04af0113, 0x04b00113, 0x04b10113,
+    0x04b20113, 0x04b30113, 0x04b40113, 0x04b50113, 0x04b60113, 0x04b70113, 0x04b80113, 0x04b90113,
+    0x04ba0113, 0x04bb0113, 0x04bc0113, 0x04bd0113, 0x04be0113, 0x04bf0113, 0x04c00113, 0x04c10113,
+    0x04c20113, 0x04c30113, 0x04c40113, 0x04c50113, 0x04c60113, 0x04c70113, 0x04c80113, 0x04c90113,
+    0x04ca0113, 0x04cb0113, 0x04cc0113, 0x04cd0113, 0x04ce0113, 0x04cf0113, 0x04d00113, 0x04d10113,
+    0x04d20113, 0x04d30113, 0x04d40113, 0x04d50113, 0x04d60113, 0x04d70113, 0x04d80113, 0x04d90113,
+    0x04da0113, 0x04db0113, 0x04dc0113, 0x04dd0113, 0xffffffff, 0x04de0113, 0x04df0113, 0x04e00113,
+    0x04e10113, 0x04e20113, 0x04e30113, 0x04e40113, 0x04e50113, 0x04e60113, 0x04e70113, 0x04e80113,
+    0x04e90113, 0x04ea0113, 0x04eb0113, 0x04ec0113, 0x04ed0113, 0x04ee0113, 0x04ef0113, 0x04f00113,
+    0x04f10113, 0x04f20113, 0x04f30113, 0x04f40113, 0x04f50113, 0x04f60113, 0x04f70113, 0x04f80113,
+    0x04f90113, 0x04fa0113, 0x04fb0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -1061,29 +1061,29 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2400 .. 0x24ff */
-    0x04fc0111, 0x04fd0111, 0x04fe0111, 0x04ff0111, 0x05000111, 0x05010111, 0x05020111, 0x05030111,
-    0x05040111, 0x05050111, 0x05060111, 0x05070111, 0x05080111, 0x05090111, 0x050a0111, 0x050b0111,
-    0x050c0111, 0x050d0111, 0x050e0111, 0x050f0111, 0x05100111, 0x05110111, 0x05120111, 0x05130111,
-    0x05140111, 0x05150111, 0x05160111, 0x05170111, 0x05180111, 0x05190111, 0x051a0111, 0x051b0111,
-    0x051c0111, 0x051d0111, 0x051e0111, 0x051f0111, 0x05200111, 0x05210111, 0x05220111, 0xffffffff,
+    0x04fc0113, 0x04fd0113, 0x04fe0113, 0x04ff0113, 0x05000113, 0x05010113, 0x05020113, 0x05030113,
+    0x05040113, 0x05050113, 0x05060113, 0x05070113, 0x05080113, 0x05090113, 0x050a0113, 0x050b0113,
+    0x050c0113, 0x050d0113, 0x050e0113, 0x050f0113, 0x05100113, 0x05110113, 0x05120113, 0x05130113,
+    0x05140113, 0x05150113, 0x05160113, 0x05170113, 0x05180113, 0x05190113, 0x051a0113, 0x051b0113,
+    0x051c0113, 0x051d0113, 0x051e0113, 0x051f0113, 0x05200113, 0x05210113, 0x05220113, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x05230111, 0x05240111, 0x05250111, 0x05260111, 0x05270111, 0x05280111, 0x05290111, 0x052a0111,
-    0x052b0111, 0x052c0111, 0x052d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x05230113, 0x05240113, 0x05250113, 0x05260113, 0x05270113, 0x05280113, 0x05290113, 0x052a0113,
+    0x052b0113, 0x052c0113, 0x052d0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141,
     0x0a140141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141,
-    0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0d0141, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
+    0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0d0141, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
     0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131,
     0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131,
-    0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x0a150171, 0x0a290171,
+    0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x0a150171, 0x0a290171,
     0x0a3d0191, 0x0a490181, 0x0a650181, 0x0a910181, 0x0a990171, 0x0ab90181, 0x0ad301a1, 0x0ae70161,
     0x0af70161, 0x0b0301a1, 0x0b2b0191, 0x0b330191, 0x0b4b0191, 0x0b670171, 0x0b730171, 0x0b7f0181,
     0x0ba70171, 0x0bbf0181, 0x0bd70161, 0x0bef0181, 0x0bfb0161, 0x0c030181, 0x0c070161, 0x0c130171,
@@ -1094,54 +1094,54 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2500 .. 0x25ff */
-    0x052e0111, 0x052f0111, 0x05300111, 0x05310111, 0x05320111, 0x05330111, 0x05340111, 0x05350111,
-    0x05360111, 0x05370111, 0x05380111, 0x05390111, 0x053a0111, 0x053b0111, 0x053c0111, 0x053d0111,
-    0x053e0111, 0x053f0111, 0x05400111, 0x05410111, 0x05420111, 0x05430111, 0x05440111, 0x05450111,
-    0x05460111, 0x05470111, 0x05480111, 0x05490111, 0x054a0111, 0x054b0111, 0x054c0111, 0x054d0111,
-    0x054e0111, 0x054f0111, 0x05500111, 0x05510111, 0x05520111, 0x05530111, 0x05540111, 0x05550111,
-    0x05560111, 0x05570111, 0x05580111, 0x05590111, 0x055a0111, 0x055b0111, 0x055c0111, 0x055d0111,
-    0x055e0111, 0x055f0111, 0x05600111, 0x05610111, 0x05620111, 0x05630111, 0x05640111, 0x05650111,
-    0x05660111, 0x05670111, 0x05680111, 0x05690111, 0x056a0111, 0x056b0111, 0x056c0111, 0x056d0111,
-    0x056e0111, 0x056f0111, 0x05700111, 0x05710111, 0x05720111, 0x05730111, 0x05740111, 0x05750111,
-    0x05760111, 0x05770111, 0x05780111, 0x05790111, 0x057a0111, 0x057b0111, 0x057c0111, 0x057d0111,
-    0x057e0111, 0x057f0111, 0x05800111, 0x05810111, 0x05820111, 0x05830111, 0x05840111, 0x05850111,
-    0x05860111, 0x05870111, 0x05880111, 0x05890111, 0x058a0111, 0x058b0111, 0x058c0111, 0x058d0111,
-    0x058e0111, 0x058f0111, 0x05900111, 0x05910111, 0x05920111, 0x05930111, 0x05940111, 0x05950111,
-    0x05960111, 0x05970111, 0x05980111, 0x05990111, 0x059a0111, 0x059b0111, 0x059c0111, 0x059d0111,
-    0x059e0111, 0x059f0111, 0x05a00111, 0x05a10111, 0x05a20111, 0x05a30111, 0x05a40111, 0x05a50111,
-    0x05a60111, 0x05a70111, 0x05a80111, 0x05a90111, 0x05aa0111, 0x05ab0111, 0x05ac0111, 0x05ad0111,
-    0x05ae0111, 0x05af0111, 0x05b00111, 0x05b10111, 0x05b20111, 0x05b30111, 0x05b40111, 0x05b50111,
-    0x05b60111, 0x05b70111, 0x05b80111, 0x05b90111, 0x05ba0111, 0x05bb0111, 0x05bc0111, 0x05bd0111,
-    0x05be0111, 0x05bf0111, 0x05c00111, 0x05c10111, 0x05c20111, 0x05c30111, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x05c40111, 0x05c50111, 0x05c60111, 0x05c70111, 0x05c80111, 0x05c90111, 0x05ca0111, 0x05cb0111,
-    0x05cc0111, 0x05cd0111, 0x05ce0111, 0x05cf0111, 0x05d00111, 0x05d10111, 0x05d20111, 0x05d30111,
-    0x05d40111, 0x05d50111, 0x05d60111, 0x05d70111, 0x05d80111, 0x05d90111, 0x05da0111, 0x05db0111,
-    0x05dc0111, 0x05dd0111, 0x05de0111, 0x05df0111, 0x05e00111, 0x05e10111, 0x05e20111, 0x05e30111,
-    0x05e40111, 0x05e50111, 0x05e60111, 0x05e70111, 0x05e80111, 0x05e90111, 0x05ea0111, 0x05eb0111,
-    0x05ec0111, 0x05ed0111, 0x05ee0111, 0x05ef0111, 0x05f00111, 0x05f10111, 0x05f20111, 0x05f30111,
-    0x05f40111, 0x05f50111, 0x05f60111, 0x05f70111, 0x05f80111, 0x05f90111, 0x05fa0111, 0x05fb0111,
-    0x05fc0111, 0x05fd0111, 0x05fe0111, 0x05ff0111, 0x06000111, 0x06010111, 0x06020111, 0x06030111,
-    0x06040111, 0x06050111, 0x06060111, 0x06070111, 0x06080111, 0x06090111, 0x060a0111, 0x060b0111,
-    0x060c0111, 0x060d0111, 0x060e0111, 0x060f0111, 0x06100111, 0x06110111, 0x06120111, 0x06130111,
-    0x06140111, 0x06150111, 0x06160111, 0x06170111, 0x06180111, 0x06190111, 0x061a0111, 0x061b0111,
+    0x052e0113, 0x052f0113, 0x05300113, 0x05310113, 0x05320113, 0x05330113, 0x05340113, 0x05350113,
+    0x05360113, 0x05370113, 0x05380113, 0x05390113, 0x053a0113, 0x053b0113, 0x053c0113, 0x053d0113,
+    0x053e0113, 0x053f0113, 0x05400113, 0x05410113, 0x05420113, 0x05430113, 0x05440113, 0x05450113,
+    0x05460113, 0x05470113, 0x05480113, 0x05490113, 0x054a0113, 0x054b0113, 0x054c0113, 0x054d0113,
+    0x054e0113, 0x054f0113, 0x05500113, 0x05510113, 0x05520113, 0x05530113, 0x05540113, 0x05550113,
+    0x05560113, 0x05570113, 0x05580113, 0x05590113, 0x055a0113, 0x055b0113, 0x055c0113, 0x055d0113,
+    0x055e0113, 0x055f0113, 0x05600113, 0x05610113, 0x05620113, 0x05630113, 0x05640113, 0x05650113,
+    0x05660113, 0x05670113, 0x05680113, 0x05690113, 0x056a0113, 0x056b0113, 0x056c0113, 0x056d0113,
+    0x056e0113, 0x056f0113, 0x05700113, 0x05710113, 0x05720113, 0x05730113, 0x05740113, 0x05750113,
+    0x05760113, 0x05770113, 0x05780113, 0x05790113, 0x057a0113, 0x057b0113, 0x057c0113, 0x057d0113,
+    0x057e0113, 0x057f0113, 0x05800113, 0x05810113, 0x05820113, 0x05830113, 0x05840113, 0x05850113,
+    0x05860113, 0x05870113, 0x05880113, 0x05890113, 0x058a0113, 0x058b0113, 0x058c0113, 0x058d0113,
+    0x058e0113, 0x058f0113, 0x05900113, 0x05910113, 0x05920113, 0x05930113, 0x05940113, 0x05950113,
+    0x05960113, 0x05970113, 0x05980113, 0x05990113, 0x059a0113, 0x059b0113, 0x059c0113, 0x059d0113,
+    0x059e0113, 0x059f0113, 0x05a00113, 0x05a10113, 0x05a20113, 0x05a30113, 0x05a40113, 0x05a50113,
+    0x05a60113, 0x05a70113, 0x05a80113, 0x05a90113, 0x05aa0113, 0x05ab0113, 0x05ac0113, 0x05ad0113,
+    0x05ae0113, 0x05af0113, 0x05b00113, 0x05b10113, 0x05b20113, 0x05b30113, 0x05b40113, 0x05b50113,
+    0x05b60113, 0x05b70113, 0x05b80113, 0x05b90113, 0x05ba0113, 0x05bb0113, 0x05bc0113, 0x05bd0113,
+    0x05be0113, 0x05bf0113, 0x05c00113, 0x05c10113, 0x05c20113, 0x05c30113, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x05c40113, 0x05c50113, 0x05c60113, 0x05c70113, 0x05c80113, 0x05c90113, 0x05ca0113, 0x05cb0113,
+    0x05cc0113, 0x05cd0113, 0x05ce0113, 0x05cf0113, 0x05d00113, 0x05d10113, 0x05d20113, 0x05d30113,
+    0x05d40113, 0x05d50113, 0x05d60113, 0x05d70113, 0x05d80113, 0x05d90113, 0x05da0113, 0x05db0113,
+    0x05dc0113, 0x05dd0113, 0x05de0113, 0x05df0113, 0x05e00113, 0x05e10113, 0x05e20113, 0x05e30113,
+    0x05e40113, 0x05e50113, 0x05e60113, 0x05e70113, 0x05e80113, 0x05e90113, 0x05ea0113, 0x05eb0113,
+    0x05ec0113, 0x05ed0113, 0x05ee0113, 0x05ef0113, 0x05f00113, 0x05f10113, 0x05f20113, 0x05f30113,
+    0x05f40113, 0x05f50113, 0x05f60113, 0x05f70113, 0x05f80113, 0x05f90113, 0x05fa0113, 0x05fb0113,
+    0x05fc0113, 0x05fd0113, 0x05fe0113, 0x05ff0113, 0x06000113, 0x06010113, 0x06020113, 0x06030113,
+    0x06040113, 0x06050113, 0x06060113, 0x06070113, 0x06080113, 0x06090113, 0x060a0113, 0x060b0113,
+    0x060c0113, 0x060d0113, 0x060e0113, 0x060f0113, 0x06100113, 0x06110113, 0x06120113, 0x06130113,
+    0x06140113, 0x06150113, 0x06160113, 0x06170113, 0x06180113, 0x06190113, 0x061a0113, 0x061b0113,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2600 .. 0x26ff */
-    0x061c0111, 0x061d0111, 0x061e0111, 0x061f0111, 0x06200111, 0x06210111, 0x06220111, 0x06230111,
-    0x06240111, 0x06250111, 0x06260111, 0x06270111, 0x06280111, 0x06290111, 0x062a0111, 0x062b0111,
-    0x062c0111, 0x062d0111, 0x062e0111, 0x062f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x06300111, 0x06310111, 0x06320111, 0x06330111, 0x06340111, 0x06350111, 0x06360111,
-    0x06370111, 0x06380111, 0x06390111, 0x063a0111, 0x063b0111, 0x063c0111, 0x063d0111, 0x063e0111,
-    0x063f0111, 0x06400111, 0x06410111, 0x06420111, 0x06430111, 0x06440111, 0x06450111, 0x06460111,
-    0x06470111, 0x06480111, 0x06490111, 0x064a0111, 0x064b0111, 0x064c0111, 0x064d0111, 0x064e0111,
-    0x064f0111, 0x06500111, 0x06510111, 0x06520111, 0x06530111, 0x06540111, 0x06550111, 0x06560111,
-    0x06570111, 0x06580111, 0x06590111, 0x065a0111, 0x065b0111, 0x065c0111, 0x065d0111, 0x065e0111,
-    0x065f0111, 0x06600111, 0x06610111, 0x06620111, 0x06630111, 0x06640111, 0x06650111, 0x06660111,
-    0x06670111, 0x06680111, 0x06690111, 0x066a0111, 0x066b0111, 0x066c0111, 0x066d0111, 0x066e0111,
-    0x066f0111, 0x06700111, 0x06710111, 0x06720111, 0x06730111, 0x06740111, 0x06750111, 0x06760111,
-    0x06770111, 0x06780111, 0x06790111, 0x067a0111, 0x067b0111, 0x067c0111, 0x067d0111, 0x067e0111,
-    0x067f0111, 0x06800111, 0x06810111, 0x06820111, 0x06830111, 0x0a080111, 0x0a090111, 0x0a0a0111,
-    0x06840111, 0x06850111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x061c0113, 0x061d0113, 0x061e0113, 0x061f0113, 0x06200113, 0x06210113, 0x06220113, 0x06230113,
+    0x06240113, 0x06250113, 0x06260113, 0x06270113, 0x06280113, 0x06290113, 0x062a0113, 0x062b0113,
+    0x062c0113, 0x062d0113, 0x062e0113, 0x062f0113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0x06300113, 0x06310113, 0x06320113, 0x06330113, 0x06340113, 0x06350113, 0x06360113,
+    0x06370113, 0x06380113, 0x06390113, 0x063a0113, 0x063b0113, 0x063c0113, 0x063d0113, 0x063e0113,
+    0x063f0113, 0x06400113, 0x06410113, 0x06420113, 0x06430113, 0x06440113, 0x06450113, 0x06460113,
+    0x06470113, 0x06480113, 0x06490113, 0x064a0113, 0x064b0113, 0x064c0113, 0x064d0113, 0x064e0113,
+    0x064f0113, 0x06500113, 0x06510113, 0x06520113, 0x06530113, 0x06540113, 0x06550113, 0x06560113,
+    0x06570113, 0x06580113, 0x06590113, 0x065a0113, 0x065b0113, 0x065c0113, 0x065d0113, 0x065e0113,
+    0x065f0113, 0x06600113, 0x06610113, 0x06620113, 0x06630113, 0x06640113, 0x06650113, 0x06660113,
+    0x06670113, 0x06680113, 0x06690113, 0x066a0113, 0x066b0113, 0x066c0113, 0x066d0113, 0x066e0113,
+    0x066f0113, 0x06700113, 0x06710113, 0x06720113, 0x06730113, 0x06740113, 0x06750113, 0x06760113,
+    0x06770113, 0x06780113, 0x06790113, 0x067a0113, 0x067b0113, 0x067c0113, 0x067d0113, 0x067e0113,
+    0x067f0113, 0x06800113, 0x06810113, 0x06820113, 0x06830113, 0x0a080111, 0x0a090111, 0x0a0a0111,
+    0x06840113, 0x06850113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -1160,30 +1160,30 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2700 .. 0x27ff */
-    0xffffffff, 0x06860111, 0x06870111, 0x06880111, 0x06890111, 0xffffffff, 0x068a0111, 0x068b0111,
-    0x068c0111, 0x068d0111, 0xffffffff, 0xffffffff, 0x068e0111, 0x068f0111, 0x06900111, 0x06910111,
-    0x06920111, 0x06930111, 0x06940111, 0x06950111, 0x06960111, 0x06970111, 0x06980111, 0x06990111,
-    0x069a0111, 0x069b0111, 0x069c0111, 0x069d0111, 0x069e0111, 0x069f0111, 0x06a00111, 0x06a10111,
-    0x06a20111, 0x06a30111, 0x06a40111, 0x06a50111, 0x06a60111, 0x06a70111, 0x06a80111, 0x06a90111,
-    0xffffffff, 0x06aa0111, 0x06ab0111, 0x06ac0111, 0x06ad0111, 0x06ae0111, 0x06af0111, 0x06b00111,
-    0x06b10111, 0x06b20111, 0x06b30111, 0x06b40111, 0x06b50111, 0x06b60111, 0x06b70111, 0x06b80111,
-    0x06b90111, 0x06ba0111, 0x06bb0111, 0x06bc0111, 0x06bd0111, 0x06be0111, 0x06bf0111, 0x06c00111,
-    0x06c10111, 0x06c20111, 0x06c30111, 0x06c40111, 0x06c50111, 0x06c60111, 0x06c70111, 0x06c80111,
-    0x06c90111, 0x06ca0111, 0x06cb0111, 0x06cc0111, 0xffffffff, 0x06cd0111, 0xffffffff, 0x06ce0111,
-    0x06cf0111, 0x06d00111, 0x06d10111, 0xffffffff, 0xffffffff, 0xffffffff, 0x06d20111, 0xffffffff,
-    0x06d30111, 0x06d40111, 0x06d50111, 0x06d60111, 0x06d70111, 0x06d80111, 0x06d90111, 0xffffffff,
-    0xffffffff, 0x06da0111, 0x06db0111, 0x06dc0111, 0x06dd0111, 0x06de0111, 0x06df0111, 0x06e00111,
+    0xffffffff, 0x06860113, 0x06870113, 0x06880113, 0x06890113, 0xffffffff, 0x068a0113, 0x068b0113,
+    0x068c0113, 0x068d0113, 0xffffffff, 0xffffffff, 0x068e0113, 0x068f0113, 0x06900113, 0x06910113,
+    0x06920113, 0x06930113, 0x06940113, 0x06950113, 0x06960113, 0x06970113, 0x06980113, 0x06990113,
+    0x069a0113, 0x069b0113, 0x069c0113, 0x069d0113, 0x069e0113, 0x069f0113, 0x06a00113, 0x06a10113,
+    0x06a20113, 0x06a30113, 0x06a40113, 0x06a50113, 0x06a60113, 0x06a70113, 0x06a80113, 0x06a90113,
+    0xffffffff, 0x06aa0113, 0x06ab0113, 0x06ac0113, 0x06ad0113, 0x06ae0113, 0x06af0113, 0x06b00113,
+    0x06b10113, 0x06b20113, 0x06b30113, 0x06b40113, 0x06b50113, 0x06b60113, 0x06b70113, 0x06b80113,
+    0x06b90113, 0x06ba0113, 0x06bb0113, 0x06bc0113, 0x06bd0113, 0x06be0113, 0x06bf0113, 0x06c00113,
+    0x06c10113, 0x06c20113, 0x06c30113, 0x06c40113, 0x06c50113, 0x06c60113, 0x06c70113, 0x06c80113,
+    0x06c90113, 0x06ca0113, 0x06cb0113, 0x06cc0113, 0xffffffff, 0x06cd0113, 0xffffffff, 0x06ce0113,
+    0x06cf0113, 0x06d00113, 0x06d10113, 0xffffffff, 0xffffffff, 0xffffffff, 0x06d20113, 0xffffffff,
+    0x06d30113, 0x06d40113, 0x06d50113, 0x06d60113, 0x06d70113, 0x06d80113, 0x06d90113, 0xffffffff,
+    0xffffffff, 0x06da0113, 0x06db0113, 0x06dc0113, 0x06dd0113, 0x06de0113, 0x06df0113, 0x06e00113,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0141, 0x0a0d0141,
-    0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, 0x0a140141, 0x06e10111,
+    0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, 0x0a140141, 0x06e10113,
     0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141,
-    0x0a140141, 0x06e20111, 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141,
-    0x0a120141, 0x0a130141, 0x0a140141, 0x06e30111, 0x06e40111, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x06e50111, 0x06e60111, 0x06e70111, 0x06e80111, 0x06e90111, 0x06ea0111, 0x06eb0111, 0x06ec0111,
-    0x06ed0111, 0x06ee0111, 0x06ef0111, 0x06f00111, 0x06f10111, 0x06f20111, 0x06f30111, 0x06f40111,
-    0x06f50111, 0x06f60111, 0x06f70111, 0x06f80111, 0x06f90111, 0x06fa0111, 0x06fb0111, 0x06fc0111,
-    0xffffffff, 0x06fd0111, 0x06fe0111, 0x06ff0111, 0x07000111, 0x07010111, 0x07020111, 0x07030111,
-    0x07040111, 0x07050111, 0x07060111, 0x07070111, 0x07080111, 0x07090111, 0x070a0111, 0xffffffff,
+    0x0a140141, 0x06e20113, 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141,
+    0x0a120141, 0x0a130141, 0x0a140141, 0x06e30113, 0x06e40113, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x06e50113, 0x06e60113, 0x06e70113, 0x06e80113, 0x06e90113, 0x06ea0113, 0x06eb0113, 0x06ec0113,
+    0x06ed0113, 0x06ee0113, 0x06ef0113, 0x06f00113, 0x06f10113, 0x06f20113, 0x06f30113, 0x06f40113,
+    0x06f50113, 0x06f60113, 0x06f70113, 0x06f80113, 0x06f90113, 0x06fa0113, 0x06fb0113, 0x06fc0113,
+    0xffffffff, 0x06fd0113, 0x06fe0113, 0x06ff0113, 0x07000113, 0x07010113, 0x07020113, 0x07030113,
+    0x07040113, 0x07050113, 0x07060113, 0x07070113, 0x07080113, 0x07090113, 0x070a0113, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -1193,38 +1193,38 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x2800 .. 0x28ff */
-    0x070b0111, 0x070c0111, 0x070d0111, 0x070e0111, 0x070f0111, 0x07100111, 0x07110111, 0x07120111,
-    0x07130111, 0x07140111, 0x07150111, 0x07160111, 0x07170111, 0x07180111, 0x07190111, 0x071a0111,
-    0x071b0111, 0x071c0111, 0x071d0111, 0x071e0111, 0x071f0111, 0x07200111, 0x07210111, 0x07220111,
-    0x07230111, 0x07240111, 0x07250111, 0x07260111, 0x07270111, 0x07280111, 0x07290111, 0x072a0111,
-    0x072b0111, 0x072c0111, 0x072d0111, 0x072e0111, 0x072f0111, 0x07300111, 0x07310111, 0x07320111,
-    0x07330111, 0x07340111, 0x07350111, 0x07360111, 0x07370111, 0x07380111, 0x07390111, 0x073a0111,
-    0x073b0111, 0x073c0111, 0x073d0111, 0x073e0111, 0x073f0111, 0x07400111, 0x07410111, 0x07420111,
-    0x07430111, 0x07440111, 0x07450111, 0x07460111, 0x07470111, 0x07480111, 0x07490111, 0x074a0111,
-    0x074b0111, 0x074c0111, 0x074d0111, 0x074e0111, 0x074f0111, 0x07500111, 0x07510111, 0x07520111,
-    0x07530111, 0x07540111, 0x07550111, 0x07560111, 0x07570111, 0x07580111, 0x07590111, 0x075a0111,
-    0x075b0111, 0x075c0111, 0x075d0111, 0x075e0111, 0x075f0111, 0x07600111, 0x07610111, 0x07620111,
-    0x07630111, 0x07640111, 0x07650111, 0x07660111, 0x07670111, 0x07680111, 0x07690111, 0x076a0111,
-    0x076b0111, 0x076c0111, 0x076d0111, 0x076e0111, 0x076f0111, 0x07700111, 0x07710111, 0x07720111,
-    0x07730111, 0x07740111, 0x07750111, 0x07760111, 0x07770111, 0x07780111, 0x07790111, 0x077a0111,
-    0x077b0111, 0x077c0111, 0x077d0111, 0x077e0111, 0x077f0111, 0x07800111, 0x07810111, 0x07820111,
-    0x07830111, 0x07840111, 0x07850111, 0x07860111, 0x07870111, 0x07880111, 0x07890111, 0x078a0111,
-    0x078b0111, 0x078c0111, 0x078d0111, 0x078e0111, 0x078f0111, 0x07900111, 0x07910111, 0x07920111,
-    0x07930111, 0x07940111, 0x07950111, 0x07960111, 0x07970111, 0x07980111, 0x07990111, 0x079a0111,
-    0x079b0111, 0x079c0111, 0x079d0111, 0x079e0111, 0x079f0111, 0x07a00111, 0x07a10111, 0x07a20111,
-    0x07a30111, 0x07a40111, 0x07a50111, 0x07a60111, 0x07a70111, 0x07a80111, 0x07a90111, 0x07aa0111,
-    0x07ab0111, 0x07ac0111, 0x07ad0111, 0x07ae0111, 0x07af0111, 0x07b00111, 0x07b10111, 0x07b20111,
-    0x07b30111, 0x07b40111, 0x07b50111, 0x07b60111, 0x07b70111, 0x07b80111, 0x07b90111, 0x07ba0111,
-    0x07bb0111, 0x07bc0111, 0x07bd0111, 0x07be0111, 0x07bf0111, 0x07c00111, 0x07c10111, 0x07c20111,
-    0x07c30111, 0x07c40111, 0x07c50111, 0x07c60111, 0x07c70111, 0x07c80111, 0x07c90111, 0x07ca0111,
-    0x07cb0111, 0x07cc0111, 0x07cd0111, 0x07ce0111, 0x07cf0111, 0x07d00111, 0x07d10111, 0x07d20111,
-    0x07d30111, 0x07d40111, 0x07d50111, 0x07d60111, 0x07d70111, 0x07d80111, 0x07d90111, 0x07da0111,
-    0x07db0111, 0x07dc0111, 0x07dd0111, 0x07de0111, 0x07df0111, 0x07e00111, 0x07e10111, 0x07e20111,
-    0x07e30111, 0x07e40111, 0x07e50111, 0x07e60111, 0x07e70111, 0x07e80111, 0x07e90111, 0x07ea0111,
-    0x07eb0111, 0x07ec0111, 0x07ed0111, 0x07ee0111, 0x07ef0111, 0x07f00111, 0x07f10111, 0x07f20111,
-    0x07f30111, 0x07f40111, 0x07f50111, 0x07f60111, 0x07f70111, 0x07f80111, 0x07f90111, 0x07fa0111,
-    0x07fb0111, 0x07fc0111, 0x07fd0111, 0x07fe0111, 0x07ff0111, 0x08000111, 0x08010111, 0x08020111,
-    0x08030111, 0x08040111, 0x08050111, 0x08060111, 0x08070111, 0x08080111, 0x08090111, 0x080a0111,
+    0x070b0113, 0x070c0113, 0x070d0113, 0x070e0113, 0x070f0113, 0x07100113, 0x07110113, 0x07120113,
+    0x07130113, 0x07140113, 0x07150113, 0x07160113, 0x07170113, 0x07180113, 0x07190113, 0x071a0113,
+    0x071b0113, 0x071c0113, 0x071d0113, 0x071e0113, 0x071f0113, 0x07200113, 0x07210113, 0x07220113,
+    0x07230113, 0x07240113, 0x07250113, 0x07260113, 0x07270113, 0x07280113, 0x07290113, 0x072a0113,
+    0x072b0113, 0x072c0113, 0x072d0113, 0x072e0113, 0x072f0113, 0x07300113, 0x07310113, 0x07320113,
+    0x07330113, 0x07340113, 0x07350113, 0x07360113, 0x07370113, 0x07380113, 0x07390113, 0x073a0113,
+    0x073b0113, 0x073c0113, 0x073d0113, 0x073e0113, 0x073f0113, 0x07400113, 0x07410113, 0x07420113,
+    0x07430113, 0x07440113, 0x07450113, 0x07460113, 0x07470113, 0x07480113, 0x07490113, 0x074a0113,
+    0x074b0113, 0x074c0113, 0x074d0113, 0x074e0113, 0x074f0113, 0x07500113, 0x07510113, 0x07520113,
+    0x07530113, 0x07540113, 0x07550113, 0x07560113, 0x07570113, 0x07580113, 0x07590113, 0x075a0113,
+    0x075b0113, 0x075c0113, 0x075d0113, 0x075e0113, 0x075f0113, 0x07600113, 0x07610113, 0x07620113,
+    0x07630113, 0x07640113, 0x07650113, 0x07660113, 0x07670113, 0x07680113, 0x07690113, 0x076a0113,
+    0x076b0113, 0x076c0113, 0x076d0113, 0x076e0113, 0x076f0113, 0x07700113, 0x07710113, 0x07720113,
+    0x07730113, 0x07740113, 0x07750113, 0x07760113, 0x07770113, 0x07780113, 0x07790113, 0x077a0113,
+    0x077b0113, 0x077c0113, 0x077d0113, 0x077e0113, 0x077f0113, 0x07800113, 0x07810113, 0x07820113,
+    0x07830113, 0x07840113, 0x07850113, 0x07860113, 0x07870113, 0x07880113, 0x07890113, 0x078a0113,
+    0x078b0113, 0x078c0113, 0x078d0113, 0x078e0113, 0x078f0113, 0x07900113, 0x07910113, 0x07920113,
+    0x07930113, 0x07940113, 0x07950113, 0x07960113, 0x07970113, 0x07980113, 0x07990113, 0x079a0113,
+    0x079b0113, 0x079c0113, 0x079d0113, 0x079e0113, 0x079f0113, 0x07a00113, 0x07a10113, 0x07a20113,
+    0x07a30113, 0x07a40113, 0x07a50113, 0x07a60113, 0x07a70113, 0x07a80113, 0x07a90113, 0x07aa0113,
+    0x07ab0113, 0x07ac0113, 0x07ad0113, 0x07ae0113, 0x07af0113, 0x07b00113, 0x07b10113, 0x07b20113,
+    0x07b30113, 0x07b40113, 0x07b50113, 0x07b60113, 0x07b70113, 0x07b80113, 0x07b90113, 0x07ba0113,
+    0x07bb0113, 0x07bc0113, 0x07bd0113, 0x07be0113, 0x07bf0113, 0x07c00113, 0x07c10113, 0x07c20113,
+    0x07c30113, 0x07c40113, 0x07c50113, 0x07c60113, 0x07c70113, 0x07c80113, 0x07c90113, 0x07ca0113,
+    0x07cb0113, 0x07cc0113, 0x07cd0113, 0x07ce0113, 0x07cf0113, 0x07d00113, 0x07d10113, 0x07d20113,
+    0x07d30113, 0x07d40113, 0x07d50113, 0x07d60113, 0x07d70113, 0x07d80113, 0x07d90113, 0x07da0113,
+    0x07db0113, 0x07dc0113, 0x07dd0113, 0x07de0113, 0x07df0113, 0x07e00113, 0x07e10113, 0x07e20113,
+    0x07e30113, 0x07e40113, 0x07e50113, 0x07e60113, 0x07e70113, 0x07e80113, 0x07e90113, 0x07ea0113,
+    0x07eb0113, 0x07ec0113, 0x07ed0113, 0x07ee0113, 0x07ef0113, 0x07f00113, 0x07f10113, 0x07f20113,
+    0x07f30113, 0x07f40113, 0x07f50113, 0x07f60113, 0x07f70113, 0x07f80113, 0x07f90113, 0x07fa0113,
+    0x07fb0113, 0x07fc0113, 0x07fd0113, 0x07fe0113, 0x07ff0113, 0x08000113, 0x08010113, 0x08020113,
+    0x08030113, 0x08040113, 0x08050113, 0x08060113, 0x08070113, 0x08080113, 0x08090113, 0x080a0113,
     /* 0x2e00 .. 0x2eff */
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
@@ -1289,17 +1289,17 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x09a90111, 0x09aa0111, 0x09ab0111, 0x09ac0111, 0x09ad0111, 0x09ae0111, 0x09af0111, 0x09b00111,
-    0x09b10111, 0x09b20111, 0x09b30111, 0x09b40111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x09a90113, 0x09aa0113, 0x09ab0113, 0x09ac0113, 0x09ad0113, 0x09ae0113, 0x09af0113, 0x09b00113,
+    0x09b10113, 0x09b20113, 0x09b30113, 0x09b40113, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x3000 .. 0x30ff */
-    0x02090121, 0x02340111, 0x025e0111, 0x02b80111, 0x09b50111, 0x09d70111, 0x192c0111, 0x0a0b0111,
-    0x02880111, 0x02890111, 0x028a0111, 0x028b0111, 0x028c0111, 0x028d0111, 0x028e0111, 0x028f0111,
-    0x02900111, 0x02910111, 0x09b60111, 0x09b70111, 0x02920111, 0x02930111, 0x02940111, 0x02950111,
-    0x02960111, 0x02970111, 0x02980111, 0x02990111, 0x022a0111, 0x02750111, 0x02760111, 0x02770111,
-    0x09b80111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
+    0x02090123, 0x02340113, 0x025e0113, 0x02b80113, 0x09b50113, 0x09d70111, 0x192c0111, 0x0a0b0111,
+    0x02880113, 0x02890113, 0x028a0113, 0x028b0113, 0x028c0113, 0x028d0113, 0x028e0113, 0x028f0113,
+    0x02900113, 0x02910113, 0x09b60113, 0x09b70113, 0x02920113, 0x02930113, 0x02940113, 0x02950113,
+    0x02960113, 0x02970113, 0x02980113, 0x02990113, 0x022a0113, 0x02750113, 0x02760113, 0x02770113,
+    0x09b80113, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111,
     0x0a130111, 0x0a140111, 0x0000dc11, 0x0000dd11, 0x0000de11, 0x0000df11, 0x0000e011, 0x0000e111,
-    0x022b0111, 0x09d80111, 0x09d80111, 0x09d90111, 0x09d90111, 0x09da0111, 0x09b60121, 0x09b90111,
-    0xfb400121, 0xfb400121, 0xfb400121, 0xffffffff, 0xffffffff, 0xffffffff, 0x09ba0111, 0x09bb0111,
+    0x022b0113, 0x09d80111, 0x09d80111, 0x09d90111, 0x09d90111, 0x09da0111, 0x09b60123, 0x09b90113,
+    0xfb400121, 0xfb400121, 0xfb400121, 0xffffffff, 0xffffffff, 0xffffffff, 0x09ba0113, 0x09bb0113,
     0xffffffff, 0x19210111, 0x19210121, 0x19220111, 0x19220121, 0x19230111, 0x19230121, 0x19240111,
     0x19240121, 0x19250111, 0x19250121, 0x19260111, 0x19260111, 0x19270111, 0x19270111, 0x19280111,
     0x19280111, 0x19290111, 0x19290111, 0x192a0111, 0x192a0111, 0x192b0111, 0x192b0111, 0x192c0121,
@@ -1311,7 +1311,7 @@ const unsigned int collation_table[12800] =
     0x19410111, 0x19420111, 0x19430111, 0x19440111, 0x19440121, 0x19450111, 0x19450121, 0x19460111,
     0x19460121, 0x19470111, 0x19480111, 0x19490111, 0x194a0111, 0x194b0111, 0x194c0111, 0x194c0121,
     0x194d0111, 0x194e0111, 0x194f0111, 0x19500111, 0x19230121, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x0000e211, 0x0000e311, 0x021e0111, 0x021f0111, 0x09db0111, 0x09db0111, 0xffffffff,
+    0xffffffff, 0x0000e211, 0x0000e311, 0x021e0113, 0x021f0113, 0x09db0111, 0x09db0111, 0xffffffff,
     0xffffffff, 0x19210131, 0x19210151, 0x19220131, 0x19220151, 0x19230131, 0x19230151, 0x19240131,
     0x19240151, 0x19250131, 0x19250151, 0x19260131, 0x19260131, 0x19270121, 0x19270121, 0x19280121,
     0x19280121, 0x19290131, 0x19290131, 0x192a0121, 0x192a0121, 0x192b0121, 0x192b0121, 0x192c0131,
@@ -1323,7 +1323,7 @@ const unsigned int collation_table[12800] =
     0x19410121, 0x19420121, 0x19430121, 0x19440131, 0x19440151, 0x19450131, 0x19450151, 0x19460131,
     0x19460151, 0x19470121, 0x19480121, 0x19490121, 0x194a0121, 0x194b0121, 0x194c0131, 0x194c0141,
     0x194d0121, 0x194e0121, 0x194f0121, 0x19500121, 0x19230151, 0x19260121, 0x19290121, 0x194c0141,
-    0x194d0121, 0x194e0121, 0x194f0121, 0x022c0111, 0x09dc0111, 0x09dd0111, 0x09dd0111, 0xffffffff,
+    0x194d0121, 0x194e0121, 0x194f0121, 0x022c0113, 0x09dc0111, 0x09dd0111, 0x09dd0111, 0xffffffff,
     /* 0x3100 .. 0x31ff */
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x19510111, 0x19520111, 0x19530111,
     0x19540111, 0x19560111, 0x19570111, 0x19580111, 0x19590111, 0x195a0111, 0x195b0111, 0x195e0111,
@@ -1343,7 +1343,7 @@ const unsigned int collation_table[12800] =
     0x185c0121, 0x185d0121, 0x185e0121, 0x185f0121, 0x18600121, 0x18630121, 0x18670121, 0x18710121,
     0x18780121, 0x187d0121, 0x19180121, 0x19190121, 0x18880121, 0x18890121, 0x188a0121, 0x18b00121,
     0x18b10121, 0x18b40121, 0x18bd0121, 0x18be0121, 0x18c00121, 0x18ca0121, 0x18cd0121, 0xffffffff,
-    0x09bc0111, 0x09bd0111, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141,
+    0x09bc0113, 0x09bd0113, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141,
     0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141,
     0x19510121, 0x19670121, 0x195f0121, 0x195a0121, 0x196f0111, 0x196f0121, 0x196c0111, 0x196b0121,
     0x197e0121, 0x196a0121, 0x197d0121, 0x197e0121, 0x197b0111, 0x195d0111, 0x19700121, 0x19720121,
@@ -1358,22 +1358,22 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     /* 0x3200 .. 0x32ff */
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131,
-    0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133,
+    0x027a0133, 0x027a0133, 0x027a0133, 0x027a0133, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x18310131, 0x18330131, 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131,
     0x183d0131, 0x183f0131, 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0x18310131, 0x18330131,
     0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, 0x183d0131, 0x183f0131,
-    0x18400131, 0x18410131, 0x18420131, 0x18430131, 0xffffffff, 0xffffffff, 0xffffffff, 0x09be0111,
+    0x18400131, 0x18410131, 0x18420131, 0x18430131, 0xffffffff, 0xffffffff, 0xffffffff, 0x09be0113,
     0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131,
     0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131,
     0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131,
@@ -1495,7 +1495,7 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0x0ea30121, 0x0ea30121, 0x0ea30121, 0x0ead0121, 0x0ea30121,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0ec00111, 0x00006711, 0x0ec00121,
     0x0ec60121, 0x0eb70131, 0x0eba0131, 0x0ebb0121, 0x0ec10121, 0x0ec20121, 0x0ec30121, 0x0eca0121,
-    0x0ecc0121, 0x039f0131, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0eb70111, 0x0eb70111,
+    0x0ecc0121, 0x039f0133, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0eb70111, 0x0eb70111,
     0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0xffffffff,
     0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0xffffffff, 0x0ec30111, 0xffffffff,
     0x0ec40111, 0x0ec50111, 0xffffffff, 0x0ec70121, 0x0ec70111, 0xffffffff, 0x0ec80111, 0x0ec90111,
@@ -1563,7 +1563,7 @@ const unsigned int collation_table[12800] =
     0x0eea0141, 0x0f0a0141, 0x0f0a0141, 0x0f0b0141, 0x0f0b0141, 0x0f050141, 0x0f050141, 0x0f050141,
     0x0f050141, 0x0f050141, 0x0f040141, 0x0f0a0141, 0x0f0b0141, 0x0f050121, 0x0f050121, 0x0f050121,
     0x0f050121, 0x0f040121, 0x0f050121, 0x0f0f0121, 0x0f040131, 0x0f040131, 0x0f040131, 0x0f050131,
-    0x0f050131, 0x0f050131, 0x0f0f0131, 0x0f100131, 0x0ed60131, 0x0ed60141, 0x029a0111, 0x029b0111,
+    0x0f050131, 0x0f050131, 0x0f0f0131, 0x0f100131, 0x0ed60131, 0x0ed60141, 0x029a0113, 0x029b0113,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x0edc0121, 0x0edc0141, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121,
@@ -1595,14 +1595,14 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x00005011, 0x00005111, 0x00005211, 0x00005311, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x02550151, 0x02280131, 0x02270121, 0x021b0141, 0x021b0141, 0x027a0171, 0x027b0161, 0x027e0141,
-    0x027f0141, 0x02920131, 0x02930131, 0x02900121, 0x02910121, 0x028a0121, 0x028b0121, 0x02880121,
-    0x02890121, 0x028c0131, 0x028d0131, 0x028e0121, 0x028f0121, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x02110121, 0x02110121, 0x02110121, 0x02110121, 0x021b0131, 0x021b0131, 0x021b0131,
-    0x022d0131, 0x02340121, 0x02550141, 0xffffffff, 0x02350131, 0x02370131, 0x024e0141, 0x024b0141,
-    0x02280121, 0x027a0141, 0x027b0131, 0x027e0131, 0x027f0131, 0x02920121, 0x02930121, 0x02a90131,
-    0x02a70131, 0x02a20131, 0x039f0141, 0x02210131, 0x03a30131, 0x03a50131, 0x03a40131, 0xffffffff,
-    0x02a60131, 0x09e00131, 0x02aa0131, 0x02a10131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0x02550153, 0x02280133, 0x02270123, 0x021b0143, 0x021b0143, 0x027a0173, 0x027b0163, 0x027e0143,
+    0x027f0143, 0x02920133, 0x02930133, 0x02900123, 0x02910123, 0x028a0123, 0x028b0123, 0x02880123,
+    0x02890123, 0x028c0133, 0x028d0133, 0x028e0123, 0x028f0123, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0x02110123, 0x02110123, 0x02110123, 0x02110123, 0x021b0133, 0x021b0133, 0x021b0133,
+    0x022d0133, 0x02340123, 0x02550143, 0xffffffff, 0x02350133, 0x02370133, 0x024e0143, 0x024b0143,
+    0x02280123, 0x027a0143, 0x027b0133, 0x027e0133, 0x027f0133, 0x02920123, 0x02930123, 0x02a90133,
+    0x02a70133, 0x02a20133, 0x039f0143, 0x02210133, 0x03a30133, 0x03a50133, 0x03a40133, 0xffffffff,
+    0x02a60133, 0x09e00131, 0x02aa0133, 0x02a10133, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
     0x00006831, 0x00006821, 0x00006921, 0xffffffff, 0x00006a21, 0xffffffff, 0x00006b31, 0x00006b21,
     0x00006c31, 0x00006c21, 0x00006d31, 0x00006d21, 0x00006e31, 0x00006e21, 0x00006f31, 0x00006f21,
     0x0ecd0131, 0x0ece0131, 0x0ece0121, 0x0ecf0131, 0x0ecf0121, 0x0ed20131, 0x0ed20121, 0x0ed30131,
@@ -1622,19 +1622,19 @@ const unsigned int collation_table[12800] =
     0x0f480141, 0x0f490161, 0x0f490151, 0x0f490131, 0x0f490141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151,
     0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0xffffffff, 0xffffffff, 0x00000000,
     /* 0xff00 .. 0xffff */
-    0xffffffff, 0x024b0121, 0x02700121, 0x02a90121, 0x09e00121, 0x02aa0121, 0x02a70121, 0x02690121,
-    0x027a0121, 0x027b0121, 0x02a20121, 0x039f0121, 0x022d0121, 0x02210121, 0x02550121, 0x02a40121,
+    0xffffffff, 0x024b0123, 0x02700123, 0x02a90123, 0x09e00121, 0x02aa0123, 0x02a70123, 0x02690123,
+    0x027a0123, 0x027b0123, 0x02a20123, 0x039f0123, 0x022d0123, 0x02210123, 0x02550123, 0x02a40123,
     0x0a0b0121, 0x0a0c0121, 0x0a0d0121, 0x0a0e0121, 0x0a0f0121, 0x0a100121, 0x0a110121, 0x0a120121,
-    0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121,
-    0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161,
+    0x0a130121, 0x0a140121, 0x02370123, 0x02350123, 0x03a30123, 0x03a40123, 0x03a50123, 0x024e0123,
+    0x02a10123, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161,
     0x0ab90161, 0x0ad30171, 0x0ae70151, 0x0af70151, 0x0b030171, 0x0b2b0161, 0x0b330161, 0x0b4b0171,
     0x0b670151, 0x0b730151, 0x0b7f0151, 0x0ba70161, 0x0bbf0161, 0x0bd70151, 0x0bef0161, 0x0bfb0151,
-    0x0c030161, 0x0c070151, 0x0c130151, 0x027c0121, 0x02a60121, 0x027d0121, 0x020f0121, 0x021b0121,
-    0x020c0121, 0x0a150121, 0x0a290121, 0x0a3d0121, 0x0a490121, 0x0a650121, 0x0a910121, 0x0a990121,
+    0x0c030161, 0x0c070151, 0x0c130151, 0x027c0123, 0x02a60123, 0x027d0123, 0x020f0123, 0x021b0123,
+    0x020c0123, 0x0a150121, 0x0a290121, 0x0a3d0121, 0x0a490121, 0x0a650121, 0x0a910121, 0x0a990121,
     0x0ab90121, 0x0ad30121, 0x0ae70121, 0x0af70121, 0x0b030121, 0x0b2b0121, 0x0b330121, 0x0b4b0121,
     0x0b670121, 0x0b730121, 0x0b7f0121, 0x0ba70121, 0x0bbf0121, 0x0bd70121, 0x0bef0121, 0x0bfb0121,
-    0x0c030121, 0x0c070121, 0x0c130121, 0x027e0121, 0x03a70121, 0x027f0121, 0x03aa0121, 0xffffffff,
-    0xffffffff, 0x025e0121, 0x028c0121, 0x028d0121, 0x02340131, 0x022c0121, 0x194f0131, 0x19210141,
+    0x0c030121, 0x0c070121, 0x0c130121, 0x027e0123, 0x03a70123, 0x027f0123, 0x03aa0123, 0xffffffff,
+    0xffffffff, 0x025e0123, 0x028c0123, 0x028d0123, 0x02340133, 0x022c0123, 0x194f0131, 0x19210141,
     0x19220141, 0x19230141, 0x19240141, 0x19250141, 0x19440141, 0x19450141, 0x19460141, 0x19320141,
     0x09dc0121, 0x19210161, 0x19220161, 0x19230161, 0x19240161, 0x19250161, 0x19260141, 0x19270131,
     0x19280131, 0x19290141, 0x192a0131, 0x192b0131, 0x192c0141, 0x192d0131, 0x192e0131, 0x192f0131,
@@ -1650,8 +1650,8 @@ const unsigned int collation_table[12800] =
     0xffffffff, 0xffffffff, 0x18930131, 0x18940131, 0x18950131, 0x18960131, 0x18970131, 0x18980131,
     0xffffffff, 0xffffffff, 0x18990131, 0x189a0131, 0x189b0131, 0x189c0131, 0x189d0131, 0x189e0131,
     0xffffffff, 0xffffffff, 0x189f0131, 0x18a00131, 0x18a10131, 0xffffffff, 0xffffffff, 0xffffffff,
-    0x09df0121, 0x09e10121, 0x03a60121, 0x02100121, 0x03a80121, 0x09e20121, 0x09ef0121, 0xffffffff,
-    0x05300121, 0x03320121, 0x03340121, 0x03330121, 0x03350121, 0x05c40121, 0x05ef0121, 0xffffffff,
+    0x09df0121, 0x09e10121, 0x03a60123, 0x02100123, 0x03a80123, 0x09e20121, 0x09ef0121, 0xffffffff,
+    0x05300123, 0x03320123, 0x03340123, 0x03330123, 0x03350123, 0x05c40123, 0x05ef0123, 0xffffffff,
     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x09bf0111, 0x09c00111, 0xffffffff, 0xffffffff
+    0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x09bf0113, 0x09c00113, 0xffffffff, 0xffffffff
 };
diff --git a/libs/wine/cpmap.pl b/libs/wine/cpmap.pl
index 89773e8..4ac63ae 100755
--- a/libs/wine/cpmap.pl
+++ b/libs/wine/cpmap.pl
@@ -550,7 +550,7 @@ sub READ_JIS0208_FILE($)
 sub READ_SORTKEYS_FILE()
 {
     my @sortkeys = ();
-    for (my $i = 0; $i < 65536; $i++) { $sortkeys[$i] = [ -1, 0, 0, 0, 0 ] };
+    for (my $i = 0; $i < 65536; $i++) { $sortkeys[$i] = [ -1, 0, 0, 0, 0, 0 ] };
 
     my $INPUT = open_data_file $SORTKEYS;
     while (<$INPUT>)
@@ -563,7 +563,11 @@ sub READ_SORTKEYS_FILE()
         {
             my ($uni,$variable) = (hex $1, $2);
             next if $uni > 65535;
-            $sortkeys[$uni] = [ $uni, hex $3, hex $4, hex $5, hex $6 ];
+            if ($variable eq "*" and $1 eq $6)
+                {$variable = 1;}
+            else
+                {$variable = 0;}
+            $sortkeys[$uni] = [ $uni, hex $3, hex $4, hex $5, hex $6, $variable ];
             next;
         }
         if (/^([0-9a-fA-F]+\s+)+;\s+\[[*.]([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]{4})\.([0-9a-fA-F]+)\]/)
@@ -629,7 +633,7 @@ sub READ_SORTKEYS_FILE()
         if ($current[3]) { $current[3] = $n3; }
         if ($current[4]) { $current[4] = 1; }
 
-        $flatkeys[$current[0]] = ($current[1] << 16) | ($current[2] << 8) | ($current[3] << 4) | $current[4];
+        $flatkeys[$current[0]] = ($current[1] << 16) | ($current[2] << 8) | ($current[3] << 4) | ($current[5] << 1) | $current[4];
     }
     return @flatkeys;
 }
diff --git a/libs/wine/sortkey.c b/libs/wine/sortkey.c
index 17b5537..6e4bb79 100644
--- a/libs/wine/sortkey.c
+++ b/libs/wine/sortkey.c
@@ -164,6 +164,9 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
     /* 32-bit collation element table format:
      * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
      * case weight - high 4 bit of low 8 bit.
+     * bit 2 and 3 are not used.
+     * if it is a variable weight then bit 1 is set.
+     * if it has a level 4 weight then bit 0 is set.
      */
     while (len1 > 0 && len2 > 0)
     {
@@ -211,6 +214,8 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
         ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)];
         ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)];
 
+        if (ce1 & 2 && ce2 & 2) return *str1 - *str2;
+
         if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1)
             ret = (ce1 >> 16) - (ce2 >> 16);
         else
@@ -235,6 +240,9 @@ static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int le
     /* 32-bit collation element table format:
      * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
      * case weight - high 4 bit of low 8 bit.
+     * bit 2 and 3 are not used.
+     * if it is a variable weight then bit 1 is set.
+     * if it has a level 4 weight then bit 0 is set.
      */
     while (len1 > 0 && len2 > 0)
     {
@@ -284,6 +292,9 @@ static inline int compare_case_weights(int flags, const WCHAR *str1, int len1,
     /* 32-bit collation element table format:
      * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
      * case weight - high 4 bit of low 8 bit.
+     * bit 2 and 3 are not used.
+     * if it is a variable weight then bit 1 is set.
+     * if it has a level 4 weight then bit 0 is set.
      */
     while (len1 > 0 && len2 > 0)
     {
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list