[USP10]
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 28 Sep 2013 15:11:02 +0000 (15:11 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 28 Sep 2013 15:11:02 +0000 (15:11 +0000)
* Sync with Wine 1.7.1.
CORE-7469

svn path=/trunk/; revision=60418

reactos/dll/win32/usp10/CMakeLists.txt
reactos/dll/win32/usp10/breaking.c
reactos/dll/win32/usp10/indicsyllable.c
reactos/dll/win32/usp10/linebreak.c
reactos/dll/win32/usp10/mirror.c
reactos/dll/win32/usp10/opentype.c
reactos/dll/win32/usp10/shaping.c
reactos/dll/win32/usp10/usp10.c
reactos/media/doc/README.WINE

index 3403d57..b9af555 100644 (file)
@@ -1,7 +1,6 @@
 
 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
 add_definitions(-D__WINESRC__)
-
 spec2def(usp10.dll usp10.spec ADD_IMPORTLIB)
 
 list(APPEND SOURCE
@@ -10,21 +9,16 @@ list(APPEND SOURCE
     indic.c
     indicsyllable.c
     linebreak.c
-    usp10.c
     mirror.c
     opentype.c
     shape.c
     shaping.c
+    usp10.c
     ${CMAKE_CURRENT_BINARY_DIR}/usp10_stubs.c
     ${CMAKE_CURRENT_BINARY_DIR}/usp10.def)
 
 add_library(usp10 SHARED ${SOURCE})
-
 set_module_type(usp10 win32dll)
-
 target_link_libraries(usp10 wine)
-
 add_importlibs(usp10 advapi32 user32 gdi32 msvcrt kernel32 ntdll)
-
-
 add_cd_file(TARGET usp10 DESTINATION reactos/system32 FOR all)
index b8bc155..30b3d67 100644 (file)
@@ -38,7 +38,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(uniscribe);
 
 extern const unsigned short wine_linebreak_table[];
 
-enum breaking_types { b_BK=1, b_CR, b_LF, b_CM, b_SG, b_GL, b_CB, b_SP, b_ZW, b_NL, b_WJ, b_JL, b_JV, b_JT, b_H2, b_H3, b_XX, b_OP, b_CL, b_CP, b_QU, b_NS, b_EX, b_SY, b_IS, b_PR, b_PO, b_NU, b_AL, b_ID, b_IN, b_HY, b_BB, b_BA, b_SA, b_AI, b_B2};
+enum breaking_types { b_BK=1, b_CR, b_LF, b_CM, b_SG, b_GL, b_CB, b_SP, b_ZW, b_NL, b_WJ, b_JL, b_JV, b_JT, b_H2, b_H3, b_XX, b_OP, b_CL, b_CP, b_QU, b_NS, b_EX, b_SY, b_IS, b_PR, b_PO, b_NU, b_AL, b_ID, b_IN, b_HY, b_BB, b_BA, b_SA, b_AI, b_B2, b_HL, b_CJ, b_RI};
 
 enum breaking_class {b_r=1, b_s, b_x};
 
@@ -97,6 +97,7 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
                 break;
             case b_CM:
                 la[i].fCharStop = FALSE;
+                break;
         }
     }
 
@@ -111,6 +112,10 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
             case b_SG:
             case b_XX:
                 break_class[i] = b_AL;
+                break;
+            case b_CJ:
+                break_class[i] = b_NS;
+                break;
         }
     }
 
@@ -283,6 +288,16 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
                 if (i < count-1)
                     else_break(&break_before[i+1],b_x);
                 break;
+            /* LB21a */
+            case b_HL:
+                if (i < count-2)
+                    switch (break_class[i+1])
+                    {
+                    case b_HY:
+                    case b_BA:
+                        else_break(&break_before[i+2], b_x);
+                    }
+                break;
             /* LB22 */
             case b_IN:
                 if (i > 0)
@@ -290,6 +305,7 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
                     switch (break_class[i-1])
                     {
                         case b_AL:
+                        case b_HL:
                         case b_ID:
                         case b_IN:
                         case b_NU:
@@ -304,12 +320,16 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
             /* LB23 */
             if ((break_class[i] == b_ID && break_class[i+1] == b_PO) ||
                 (break_class[i] == b_AL && break_class[i+1] == b_NU) ||
-                (break_class[i] == b_NU && break_class[i+1] == b_AL))
+                (break_class[i] == b_HL && break_class[i+1] == b_NU) ||
+                (break_class[i] == b_NU && break_class[i+1] == b_AL) ||
+                (break_class[i] == b_NU && break_class[i+1] == b_HL))
                     else_break(&break_before[i+1],b_x);
             /* LB24 */
             if ((break_class[i] == b_PR && break_class[i+1] == b_ID) ||
                 (break_class[i] == b_PR && break_class[i+1] == b_AL) ||
-                (break_class[i] == b_PO && break_class[i+1] == b_AL))
+                (break_class[i] == b_PR && break_class[i+1] == b_HL) ||
+                (break_class[i] == b_PO && break_class[i+1] == b_AL) ||
+                (break_class[i] == b_PO && break_class[i+1] == b_HL))
                     else_break(&break_before[i+1],b_x);
 
             /* LB25 */
@@ -373,19 +393,27 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
             }
 
             /* LB28 */
-            if (break_class[i] == b_AL && break_class[i+1] == b_AL)
+            if ((break_class[i] == b_AL && break_class[i+1] == b_AL) ||
+                (break_class[i] == b_AL && break_class[i+1] == b_HL) ||
+                (break_class[i] == b_HL && break_class[i+1] == b_AL) ||
+                (break_class[i] == b_HL && break_class[i+1] == b_HL))
                 else_break(&break_before[i+1],b_x);
 
             /* LB29 */
-            if (break_class[i] == b_IS && break_class[i+1] == b_AL)
+            if ((break_class[i] == b_IS && break_class[i+1] == b_AL) ||
+                (break_class[i] == b_IS && break_class[i+1] == b_HL))
                 else_break(&break_before[i+1],b_x);
 
             /* LB30 */
-            if ((break_class[i] == b_AL || break_class[i] == b_NU) &&
+            if ((break_class[i] == b_AL || break_class[i] == b_HL || break_class[i] == b_NU) &&
                  break_class[i+1] == b_OP)
                 else_break(&break_before[i+1],b_x);
             if (break_class[i] == b_CP &&
-                (break_class[i+1] == b_AL || break_class[i] == b_NU))
+                (break_class[i+1] == b_AL || break_class[i] == b_HL || break_class[i] == b_NU))
+                else_break(&break_before[i+1],b_x);
+
+            /* LB30a */
+            if (break_class[i] == b_RI && break_class[i+1] == b_RI)
                 else_break(&break_before[i+1],b_x);
         }
     }
index efa735a..79ee0f6 100644 (file)
@@ -1,11 +1,11 @@
 /* Unicode Indic Syllabic Category */
-/* generated from http://www.unicode.org/Public/6.0.0/ucd/IndicSyllabicCategory.txt */
-/*       and from http://www.unicode.org/Public/6.0.0/ucd/IndicMatraCategory.txt */
+/* generated from http://www.unicode.org/Public/6.2.0/ucd/IndicSyllabicCategory.txt */
+/*       and from http://www.unicode.org/Public/6.2.0/ucd/IndicMatraCategory.txt */
 /* DO NOT EDIT!! */
 
 //#include "wine/unicode.h"
 
-const unsigned short indic_syllabic_table[2624] =
+const unsigned short indic_syllabic_table[2704] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
@@ -68,19 +68,19 @@ const unsigned short indic_syllabic_table[2624] =
     0x0250, 0x0830, 0x0250, 0x0250, 0x0250, 0x0840, 0x0850, 0x0860,
     0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250,
     0x0870, 0x0250, 0x0250, 0x0880, 0x0890, 0x0250, 0x0250, 0x0250,
-    0x08a0, 0x0250, 0x08b0, 0x0250, 0x0250, 0x0250, 0x08c0, 0x08d0,
-    0x0250, 0x0250, 0x08e0, 0x08f0, 0x0250, 0x0250, 0x0250, 0x0250,
+    0x08a0, 0x0250, 0x08b0, 0x08c0, 0x0250, 0x0250, 0x08d0, 0x08e0,
+    0x0250, 0x0250, 0x08f0, 0x0900, 0x0250, 0x0250, 0x0250, 0x0250,
+    0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0910,
     0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250,
+    0x0250, 0x0250, 0x0250, 0x0250, 0x0920, 0x0250, 0x0250, 0x0250,
+    0x0930, 0x0250, 0x0940, 0x0250, 0x0250, 0x0250, 0x0950, 0x0960,
+    0x0970, 0x0250, 0x0250, 0x0980, 0x0990, 0x0250, 0x0250, 0x0250,
+    0x0250, 0x0250, 0x0250, 0x0250, 0x09a0, 0x09b0, 0x0250, 0x0250,
+    0x09c0, 0x0250, 0x0250, 0x09d0, 0x09e0, 0x0250, 0x0250, 0x0250,
+    0x0250, 0x0250, 0x09f0, 0x0a00, 0x0a10, 0x0250, 0x0250, 0x0a20,
+    0x0250, 0x0250, 0x0250, 0x0a30, 0x0a40, 0x0250, 0x0a50, 0x0a60,
     0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250,
-    0x0250, 0x0250, 0x0250, 0x0250, 0x0900, 0x0250, 0x0250, 0x0250,
-    0x0910, 0x0250, 0x0920, 0x0250, 0x0250, 0x0250, 0x0930, 0x0940,
-    0x0950, 0x0250, 0x0250, 0x0960, 0x0970, 0x0250, 0x0250, 0x0250,
-    0x0250, 0x0250, 0x0250, 0x0250, 0x0980, 0x0990, 0x0250, 0x0250,
-    0x09a0, 0x0250, 0x0250, 0x09b0, 0x09c0, 0x0250, 0x0250, 0x0250,
-    0x0250, 0x0250, 0x09d0, 0x09e0, 0x09f0, 0x0250, 0x0250, 0x0a00,
-    0x0250, 0x0250, 0x0250, 0x0a10, 0x0a20, 0x0250, 0x0250, 0x0250,
-    0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250,
-    0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0a30, 0x0250,
+    0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0a70, 0x0a80, 0x0250,
     /* values */
     0x4d00, 0x8700, 0x8000, 0x8000, 0x7100, 0x7100, 0x7100, 0x7100,
     0x6900, 0x5900, 0x4800, 0x3f00, 0x3000, 0x1f00, 0x1300, 0x0a00,
@@ -289,7 +289,9 @@ const unsigned short indic_syllabic_table[2624] =
     0x0001, 0x000c, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x000d, 0x0000, 0x0000, 0x0500, 0x0600, 0x0200, 0x0100,
-    0x0500, 0x0500, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0500, 0x0500, 0x0105, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0007,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0007,
     0x0000, 0x0000, 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -298,6 +300,8 @@ const unsigned short indic_syllabic_table[2624] =
     0x0200, 0x0000, 0x0100, 0x0100, 0x0607, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0505, 0x0000,
@@ -336,6 +340,12 @@ const unsigned short indic_syllabic_table[2624] =
     0x0500, 0x0000, 0x0100, 0x0300, 0x0300, 0x0100, 0x0507, 0x0013,
     0x0012, 0x0013, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0200, 0x0600, 0x0500, 0x0200, 0x0100,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0e05, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x000a, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0100, 0x0100, 0x0507, 0x0100, 0x0100,
     0x0607, 0x0100, 0x0100, 0x0000, 0x0013, 0x0605, 0x0000, 0x0000
 };
index b44fd4b..a7b4aee 100644 (file)
@@ -1,10 +1,10 @@
 /* Unicode Line Break Properties */
-/* generated from http://www.unicode.org/Public/6.0.0/ucd/LineBreak.txt */
+/* generated from http://www.unicode.org/Public/6.2.0/ucd/LineBreak.txt */
 /* DO NOT EDIT!! */
 
 //#include "wine/unicode.h"
 
-const unsigned short wine_linebreak_table[6800] =
+const unsigned short wine_linebreak_table[7056] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
@@ -51,137 +51,137 @@ const unsigned short wine_linebreak_table[6800] =
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x06a0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x06b0, 0x06c0, 0x05b0, 0x06d0, 0x06c0, 0x05b0,
-    0x06e0, 0x06f0, 0x0580, 0x0700, 0x0710, 0x05b0, 0x0720, 0x0730,
-    0x0740, 0x0750, 0x05b0, 0x05b0, 0x0760, 0x0580, 0x0770, 0x0780,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0790, 0x07a0, 0x07b0,
-    0x07c0, 0x07d0, 0x05b0, 0x0580, 0x07e0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x07f0, 0x0800, 0x07b0, 0x05b0, 0x0760, 0x0810,
-    0x05b0, 0x0820, 0x0830, 0x0840, 0x05b0, 0x0850, 0x0860, 0x0860,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x0870, 0x05b0, 0x05b0, 0x0880, 0x0580, 0x0890, 0x08a0, 0x08b0,
-    0x08c0, 0x08d0, 0x08e0, 0x08f0, 0x0900, 0x0910, 0x0920, 0x0930,
-    0x0940, 0x08d0, 0x08e0, 0x0950, 0x0960, 0x0970, 0x0980, 0x0990,
-    0x09a0, 0x0690, 0x08e0, 0x09b0, 0x09c0, 0x09d0, 0x0920, 0x09e0,
-    0x08c0, 0x08d0, 0x08e0, 0x09b0, 0x09f0, 0x0a00, 0x0920, 0x06b0,
-    0x0a10, 0x0a20, 0x0a30, 0x0a40, 0x0a50, 0x0a60, 0x0980, 0x0a70,
-    0x0a80, 0x0a90, 0x08e0, 0x0aa0, 0x0ab0, 0x0ac0, 0x0920, 0x0ad0,
-    0x0ae0, 0x0a90, 0x08e0, 0x0af0, 0x0ab0, 0x0b00, 0x0920, 0x0b10,
-    0x0ae0, 0x0a90, 0x05b0, 0x0b20, 0x0b30, 0x0b40, 0x0920, 0x0b50,
-    0x0b60, 0x0b70, 0x05b0, 0x0b80, 0x0b90, 0x0ba0, 0x0860, 0x0bb0,
-    0x0bc0, 0x0bd0, 0x0bd0, 0x0be0, 0x0bf0, 0x0c00, 0x0860, 0x0860,
-    0x0c10, 0x0c20, 0x0c30, 0x0c40, 0x0c50, 0x0c60, 0x0860, 0x0860,
-    0x0c70, 0x0c80, 0x07b0, 0x0c90, 0x08b0, 0x05b0, 0x0ca0, 0x0cb0,
-    0x0cc0, 0x0cd0, 0x0580, 0x0ce0, 0x0cf0, 0x0d00, 0x0860, 0x0860,
-    0x0bd0, 0x0bd0, 0x0bd0, 0x0bd0, 0x0d10, 0x0bd0, 0x0bd0, 0x0bd0,
-    0x0bd0, 0x0d20, 0x05b0, 0x05b0, 0x0d30, 0x05b0, 0x05b0, 0x0ca0,
-    0x0d40, 0x0d40, 0x0d40, 0x0d40, 0x0d40, 0x0d40, 0x0d50, 0x0d50,
-    0x0d50, 0x0d50, 0x0d60, 0x0d70, 0x0d70, 0x0d70, 0x0d70, 0x0d70,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0d80, 0x0d90, 0x05b0, 0x05b0,
-    0x0d80, 0x05b0, 0x05b0, 0x0da0, 0x0db0, 0x0dc0, 0x05b0, 0x05b0,
-    0x05b0, 0x0db0, 0x05b0, 0x05b0, 0x05b0, 0x0dd0, 0x0de0, 0x0ca0,
-    0x05b0, 0x0df0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0730,
-    0x0e00, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x06e0, 0x06f0, 0x0580, 0x0700, 0x0710, 0x0720, 0x0730, 0x0740,
+    0x0750, 0x0760, 0x05b0, 0x05b0, 0x0770, 0x0580, 0x0780, 0x0790,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x07a0, 0x07b0, 0x07c0,
+    0x07d0, 0x07e0, 0x05b0, 0x0580, 0x07f0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x0800, 0x0810, 0x07c0, 0x05b0, 0x0770, 0x0820,
+    0x05b0, 0x0830, 0x0840, 0x0850, 0x05b0, 0x0860, 0x0870, 0x0870,
+    0x0870, 0x0870, 0x0880, 0x0870, 0x0870, 0x0870, 0x0890, 0x08a0,
+    0x08b0, 0x05b0, 0x05b0, 0x08c0, 0x0580, 0x08d0, 0x08e0, 0x08f0,
+    0x0900, 0x0910, 0x0920, 0x0930, 0x0940, 0x0950, 0x0960, 0x0970,
+    0x0980, 0x0910, 0x0920, 0x0990, 0x09a0, 0x09b0, 0x09c0, 0x09d0,
+    0x09e0, 0x0690, 0x0920, 0x09f0, 0x0a00, 0x0a10, 0x0960, 0x0a20,
+    0x0900, 0x0910, 0x0920, 0x09f0, 0x0a30, 0x0a40, 0x0960, 0x06b0,
+    0x0a50, 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0aa0, 0x09c0, 0x0ab0,
+    0x0ac0, 0x0ad0, 0x0920, 0x0ae0, 0x0af0, 0x0b00, 0x0960, 0x0b10,
+    0x0b20, 0x0ad0, 0x0920, 0x0b30, 0x0af0, 0x0b40, 0x0960, 0x0b50,
+    0x0b20, 0x0ad0, 0x05b0, 0x0b60, 0x0b70, 0x0b80, 0x0960, 0x0b90,
+    0x0ba0, 0x0bb0, 0x05b0, 0x0bc0, 0x0bd0, 0x0be0, 0x0870, 0x0bf0,
+    0x0c00, 0x0c10, 0x0c10, 0x0c20, 0x0c30, 0x0c40, 0x0870, 0x0870,
+    0x0c50, 0x0c60, 0x0c70, 0x0c80, 0x0c90, 0x0ca0, 0x0870, 0x0870,
+    0x0cb0, 0x0cc0, 0x07c0, 0x0cd0, 0x08f0, 0x05b0, 0x0ce0, 0x0cf0,
+    0x0d00, 0x0d10, 0x0580, 0x0d20, 0x0d30, 0x0d40, 0x0870, 0x0870,
+    0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0d50, 0x0c10, 0x0c10, 0x0c10,
+    0x0c10, 0x0d60, 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0,
+    0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d90, 0x0d90,
+    0x0d90, 0x0d90, 0x0da0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0db0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0dc0, 0x0dd0, 0x05b0, 0x05b0,
+    0x0dc0, 0x05b0, 0x05b0, 0x0de0, 0x0df0, 0x0e00, 0x05b0, 0x05b0,
+    0x05b0, 0x0df0, 0x05b0, 0x05b0, 0x05b0, 0x0e10, 0x0e20, 0x0ce0,
+    0x05b0, 0x0e30, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e40,
+    0x0e50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x0e00, 0x0e10, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e20, 0x09d0,
-    0x0e30, 0x0e40, 0x05b0, 0x0e50, 0x05b0, 0x0e60, 0x0e30, 0x0e70,
-    0x0bd0, 0x0bd0, 0x0bd0, 0x0bd0, 0x0bd0, 0x0e80, 0x0e90, 0x0df0,
-    0x0ea0, 0x0e90, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x06b0,
-    0x05b0, 0x05b0, 0x0eb0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0d30,
-    0x05b0, 0x0ca0, 0x0ec0, 0x0ec0, 0x0ed0, 0x0bd0, 0x0ee0, 0x0ef0,
-    0x0bd0, 0x0bd0, 0x0f00, 0x0bd0, 0x0f10, 0x0f20, 0x05b0, 0x05b0,
-    0x05b0, 0x0f30, 0x0bd0, 0x0bd0, 0x0bd0, 0x0f40, 0x0bd0, 0x0f50,
-    0x0e90, 0x0e90, 0x0ee0, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x0f60, 0x05b0, 0x05b0, 0x0f70, 0x0f80, 0x0f90, 0x0fa0, 0x0fb0,
-    0x0fc0, 0x05b0, 0x0fd0, 0x0e90, 0x05b0, 0x05b0, 0x07f0, 0x0fe0,
-    0x05b0, 0x05b0, 0x0f70, 0x0ff0, 0x1000, 0x07b0, 0x05b0, 0x1010,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x1020, 0x1030, 0x1040,
+    0x0e50, 0x0e60, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e70, 0x0a10,
+    0x0e80, 0x0e90, 0x05b0, 0x0ea0, 0x05b0, 0x0eb0, 0x0e80, 0x0ec0,
+    0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0ed0, 0x0ee0, 0x0e30,
+    0x0ef0, 0x0ee0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x06b0,
+    0x05b0, 0x05b0, 0x0f00, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f10,
+    0x05b0, 0x0ce0, 0x0f20, 0x0f20, 0x0f30, 0x0c10, 0x0f40, 0x0f50,
+    0x0c10, 0x0c10, 0x0f60, 0x0c10, 0x0f70, 0x0f80, 0x05b0, 0x05b0,
+    0x05b0, 0x0f90, 0x0c10, 0x0c10, 0x0c10, 0x0fa0, 0x0c10, 0x0fb0,
+    0x0ee0, 0x0ee0, 0x0f40, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x0fc0, 0x05b0, 0x05b0, 0x0fd0, 0x0fe0, 0x0ff0, 0x1000, 0x1010,
+    0x1020, 0x05b0, 0x1030, 0x07c0, 0x05b0, 0x05b0, 0x0800, 0x1040,
+    0x05b0, 0x05b0, 0x0fd0, 0x1050, 0x1060, 0x07c0, 0x05b0, 0x1070,
+    0x0870, 0x0870, 0x0870, 0x0870, 0x06b0, 0x1080, 0x1090, 0x10a0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x1050, 0x1060,
-    0x05b0, 0x1070, 0x05b0, 0x05b0, 0x1070, 0x1080, 0x05b0, 0x1090,
-    0x05b0, 0x05b0, 0x05b0, 0x10a0, 0x10a0, 0x10b0, 0x05b0, 0x10c0,
-    0x10d0, 0x10e0, 0x10f0, 0x1100, 0x1110, 0x1120, 0x1130, 0x1140,
-    0x1150, 0x0ca0, 0x1160, 0x1170, 0x0860, 0x0580, 0x0580, 0x1180,
-    0x1190, 0x11a0, 0x11b0, 0x05b0, 0x05b0, 0x11c0, 0x11d0, 0x11e0,
-    0x11f0, 0x11e0, 0x05b0, 0x05b0, 0x05b0, 0x1200, 0x05b0, 0x05b0,
-    0x1210, 0x1220, 0x1230, 0x1240, 0x1250, 0x1260, 0x1270, 0x05b0,
-    0x1280, 0x1290, 0x12a0, 0x12b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x1260, 0x12c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x12d0,
-    0x05b0, 0x05b0, 0x12e0, 0x0860, 0x0720, 0x0860, 0x12f0, 0x12f0,
-    0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x1300,
-    0x12f0, 0x12f0, 0x12f0, 0x12f0, 0x11d0, 0x12f0, 0x12f0, 0x1310,
-    0x12f0, 0x1320, 0x1330, 0x1340, 0x1350, 0x1360, 0x1370, 0x05b0,
-    0x1380, 0x1390, 0x05b0, 0x05b0, 0x13a0, 0x05b0, 0x13b0, 0x05b0,
-    0x05b0, 0x13c0, 0x05b0, 0x13c0, 0x13d0, 0x12f0, 0x13e0, 0x12f0,
-    0x06c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x13f0, 0x1400, 0x1410,
-    0x12f0, 0x1420, 0x05b0, 0x05b0, 0x1430, 0x05b0, 0x1440, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x10b0, 0x10c0,
+    0x05b0, 0x10d0, 0x05b0, 0x05b0, 0x10d0, 0x10e0, 0x05b0, 0x10f0,
+    0x05b0, 0x05b0, 0x05b0, 0x1100, 0x1100, 0x1110, 0x05b0, 0x1120,
+    0x1130, 0x1140, 0x1150, 0x1160, 0x1170, 0x1180, 0x1190, 0x11a0,
+    0x11b0, 0x0ce0, 0x11c0, 0x11d0, 0x0870, 0x0580, 0x0580, 0x11e0,
+    0x11f0, 0x1200, 0x1210, 0x05b0, 0x05b0, 0x1220, 0x1230, 0x1240,
+    0x1250, 0x1240, 0x05b0, 0x05b0, 0x05b0, 0x1260, 0x05b0, 0x05b0,
+    0x1270, 0x1280, 0x1290, 0x12a0, 0x12b0, 0x12c0, 0x12d0, 0x05b0,
+    0x12e0, 0x12f0, 0x1300, 0x1310, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x1320, 0x1330, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1340,
+    0x05b0, 0x05b0, 0x1350, 0x0870, 0x1360, 0x0870, 0x1370, 0x1370,
+    0x1370, 0x1370, 0x1370, 0x1370, 0x1370, 0x1370, 0x1370, 0x1380,
+    0x1370, 0x1370, 0x1370, 0x1370, 0x1230, 0x1370, 0x1370, 0x1390,
+    0x1370, 0x13a0, 0x13b0, 0x13c0, 0x13d0, 0x13e0, 0x13f0, 0x05b0,
+    0x1400, 0x1410, 0x05b0, 0x1420, 0x1430, 0x05b0, 0x1440, 0x1450,
+    0x05b0, 0x1460, 0x05b0, 0x1470, 0x1480, 0x1490, 0x14a0, 0x14b0,
+    0x14c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x14d0, 0x14e0, 0x14f0,
+    0x1370, 0x1500, 0x05b0, 0x05b0, 0x1510, 0x05b0, 0x1520, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x1450, 0x1460, 0x05b0, 0x05b0, 0x05b0, 0x1470, 0x05b0, 0x1480,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0ca0, 0x1490, 0x0860, 0x0860,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x14a0, 0x14b0,
-    0x05b0, 0x05b0, 0x0d30, 0x05b0, 0x05b0, 0x05b0, 0x14c0, 0x14d0,
-    0x05b0, 0x12e0, 0x14e0, 0x14e0, 0x14e0, 0x14e0, 0x0580, 0x0580,
-    0x14f0, 0x1500, 0x1510, 0x1520, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x1530, 0x1540, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1550,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1560, 0x0860, 0x1570,
-    0x1580, 0x1590, 0x15a0, 0x15b0, 0x15c0, 0x1530, 0x15d0, 0x1530,
-    0x15e0, 0x15f0, 0x1600, 0x1530, 0x15d0, 0x1530, 0x15e0, 0x1610,
-    0x1620, 0x1530, 0x1630, 0x1640, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1650, 0x1530, 0x1530, 0x1660, 0x1530, 0x1530, 0x1550, 0x1670,
-    0x1530, 0x1650, 0x1530, 0x1530, 0x1680, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1650,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x1530, 0x1690, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530, 0x1530,
-    0x16a0, 0x1530, 0x1530, 0x1530, 0x16b0, 0x05b0, 0x05b0, 0x1010,
-    0x16c0, 0x05b0, 0x16d0, 0x0860, 0x05b0, 0x05b0, 0x14a0, 0x16e0,
-    0x05b0, 0x06b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x16f0,
+    0x1530, 0x1540, 0x05b0, 0x05b0, 0x05b0, 0x1550, 0x05b0, 0x1560,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0ce0, 0x1570, 0x0870, 0x0870,
+    0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x05b0, 0x05b0, 0x0850, 0x05b0, 0x05b0, 0x0850, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1580, 0x1590,
+    0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, 0x15a0, 0x15b0,
+    0x05b0, 0x1350, 0x15c0, 0x15c0, 0x15c0, 0x15c0, 0x0580, 0x0580,
+    0x15d0, 0x15e0, 0x15f0, 0x1600, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x1610, 0x1620, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1340,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1630, 0x0870, 0x1640,
+    0x1650, 0x1660, 0x1670, 0x1680, 0x1690, 0x1610, 0x16a0, 0x1610,
+    0x16b0, 0x16c0, 0x16d0, 0x1610, 0x16a0, 0x1610, 0x16b0, 0x16e0,
+    0x16f0, 0x1610, 0x1700, 0x1710, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1720, 0x1610, 0x1610, 0x1730, 0x1610, 0x1610, 0x1340, 0x1740,
+    0x1610, 0x1720, 0x1610, 0x1610, 0x1750, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1720,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x1610, 0x1760, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610, 0x1610,
+    0x1770, 0x1610, 0x1610, 0x1610, 0x1780, 0x05b0, 0x05b0, 0x1070,
+    0x1790, 0x05b0, 0x17a0, 0x0870, 0x05b0, 0x05b0, 0x1580, 0x17b0,
+    0x05b0, 0x17c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x17d0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x0840, 0x1700, 0x0df0, 0x0860, 0x0860, 0x0860, 0x0860, 0x1710,
-    0x1720, 0x05b0, 0x1730, 0x1740, 0x05b0, 0x05b0, 0x05b0, 0x1750,
-    0x1760, 0x05b0, 0x05b0, 0x0f70, 0x1770, 0x0e90, 0x0580, 0x1780,
-    0x07b0, 0x05b0, 0x1790, 0x05b0, 0x17a0, 0x17b0, 0x0d40, 0x17c0,
-    0x0870, 0x05b0, 0x05b0, 0x17d0, 0x17e0, 0x17f0, 0x0860, 0x0860,
-    0x05b0, 0x05b0, 0x1800, 0x1050, 0x1810, 0x1820, 0x0bd0, 0x0f00,
-    0x0bd0, 0x0bd0, 0x0bd0, 0x0bd0, 0x1830, 0x1840, 0x0860, 0x0860,
-    0x1850, 0x1860, 0x14e0, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x05b0, 0x05b0, 0x1870, 0x0e90,
-    0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880,
-    0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890,
-    0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0,
-    0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0,
-    0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0,
-    0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0,
-    0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0,
-    0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880,
-    0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890,
-    0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0,
-    0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0,
-    0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0,
-    0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0,
-    0x18a0, 0x1880, 0x1890, 0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0,
-    0x18a0, 0x18b0, 0x18a0, 0x18c0, 0x18a0, 0x1880, 0x1890, 0x18a0,
-    0x18b0, 0x18a0, 0x18d0, 0x0d50, 0x18e0, 0x0d70, 0x0d70, 0x18f0,
-    0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900,
-    0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900, 0x1900,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x12e0, 0x1910, 0x05b0, 0x1920, 0x1930, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1700, 0x1940, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x1950, 0x0860, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x1960, 0x05b0, 0x05b0, 0x06b0, 0x0860, 0x0860, 0x1970,
-    0x0580, 0x1980, 0x1050, 0x1990, 0x19a0, 0x19b0, 0x19c0, 0x10a0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x19d0,
-    0x19e0, 0x19f0, 0x1530, 0x1a00, 0x1530, 0x1a10, 0x1a20, 0x1a30,
-    0x05b0, 0x1a40, 0x05b0, 0x0840, 0x1a50, 0x1a60, 0x1a70, 0x1a80,
+    0x0850, 0x17e0, 0x1360, 0x0870, 0x0870, 0x0870, 0x0870, 0x0b10,
+    0x17f0, 0x05b0, 0x1800, 0x1810, 0x05b0, 0x05b0, 0x05b0, 0x1820,
+    0x1830, 0x05b0, 0x05b0, 0x0fd0, 0x1840, 0x0ee0, 0x0580, 0x1850,
+    0x07c0, 0x05b0, 0x1860, 0x05b0, 0x1870, 0x1880, 0x0d80, 0x1890,
+    0x08b0, 0x05b0, 0x05b0, 0x18a0, 0x18b0, 0x18c0, 0x0870, 0x0870,
+    0x05b0, 0x05b0, 0x18d0, 0x10b0, 0x18e0, 0x18f0, 0x0c10, 0x0f60,
+    0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x1900, 0x1910, 0x0770, 0x1920,
+    0x1930, 0x1940, 0x15c0, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x0870, 0x0870, 0x0870, 0x0870, 0x05b0, 0x05b0, 0x1950, 0x0ee0,
+    0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960,
+    0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970,
+    0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980,
+    0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990,
+    0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980,
+    0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0,
+    0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980,
+    0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960,
+    0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970,
+    0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980,
+    0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990,
+    0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980,
+    0x19a0, 0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0,
+    0x1980, 0x1960, 0x1970, 0x1980, 0x1990, 0x1980, 0x19a0, 0x1980,
+    0x1980, 0x1990, 0x1980, 0x19a0, 0x1980, 0x1960, 0x1970, 0x1980,
+    0x1990, 0x1980, 0x19b0, 0x0d90, 0x19c0, 0x0db0, 0x0db0, 0x19d0,
+    0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0,
+    0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0, 0x19e0,
+    0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870,
+    0x1350, 0x19f0, 0x1a00, 0x1a10, 0x1a20, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1a30, 0x1a40, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x1a50, 0x0870, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x1a60, 0x05b0, 0x05b0, 0x06b0, 0x0870, 0x0870, 0x1a70,
+    0x0580, 0x1a80, 0x10b0, 0x1a90, 0x1aa0, 0x1ab0, 0x1ac0, 0x1100,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1ad0,
+    0x1ae0, 0x1af0, 0x1610, 0x1b00, 0x1610, 0x1b10, 0x1b20, 0x1b30,
+    0x05b0, 0x1b40, 0x05b0, 0x0850, 0x1b50, 0x1b60, 0x1b70, 0x1b80,
     /* values */
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0022, 0x0003, 0x0001, 0x0001, 0x0002, 0x0004, 0x0004,
@@ -230,18 +230,20 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0019, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0019, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x001a,
     0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0022, 0x0004,
     0x001d, 0x0004, 0x0004, 0x001d, 0x0004, 0x0004, 0x0017, 0x0004,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0026, 0x0026, 0x0026, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
     0x001d, 0x001b, 0x001b, 0x001b, 0x0019, 0x0019, 0x001d, 0x001d,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0017, 0x0011, 0x0011, 0x0017, 0x0017,
@@ -279,6 +281,12 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -325,7 +333,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011,
     0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x001a, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001a, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0004,
     0x0004, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011,
@@ -406,7 +414,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0011,
     0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
-    0x001c, 0x001c, 0x0011, 0x0011, 0x0023, 0x0023, 0x0011, 0x0011,
+    0x001c, 0x001c, 0x0011, 0x0011, 0x0023, 0x0023, 0x0023, 0x0023,
     0x001d, 0x0021, 0x0021, 0x0021, 0x0021, 0x001d, 0x0021, 0x0021,
     0x0006, 0x0021, 0x0021, 0x0022, 0x0006, 0x0017, 0x0017, 0x0017,
     0x0017, 0x0017, 0x0006, 0x001d, 0x0017, 0x001d, 0x001d, 0x001d,
@@ -431,8 +439,8 @@ const unsigned short wine_linebreak_table[6800] =
     0x001c, 0x001c, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
     0x001c, 0x001c, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x0011, 0x0011,
     0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c,
     0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c,
     0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d,
@@ -457,6 +465,8 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0022, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -481,6 +491,8 @@ const unsigned short wine_linebreak_table[6800] =
     0x0017, 0x0017, 0x001d, 0x0004, 0x0004, 0x0004, 0x0006, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0004, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x0011, 0x0011, 0x0011, 0x0017, 0x0017, 0x001c, 0x001c,
@@ -516,7 +528,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
-    0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
@@ -529,7 +541,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
@@ -568,7 +580,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001b,
     0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a,
     0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001b, 0x001a,
-    0x001a, 0x001a, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001a, 0x001a, 0x001a, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001b, 0x001d, 0x0024, 0x001d, 0x001d,
@@ -609,12 +621,16 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024,
+    0x001d, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
     0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
     0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
@@ -633,20 +649,32 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0024, 0x0024, 0x0024, 0x0024, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024, 0x001d,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x0024, 0x0024, 0x001d,
     0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024, 0x0024, 0x0024,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x001d, 0x0024, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001e, 0x001e, 0x0024, 0x0024,
+    0x001e, 0x001d, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0024, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0024, 0x0024, 0x001d, 0x0024, 0x0024, 0x0024, 0x001d, 0x0024,
-    0x0024, 0x0024, 0x0024, 0x001d, 0x0024, 0x0024, 0x001d, 0x0024,
+    0x001e, 0x0024, 0x0024, 0x001d, 0x0024, 0x0024, 0x001d, 0x0024,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001e,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024, 0x0024, 0x0024,
-    0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x001d, 0x0024,
-    0x0024, 0x0024, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x001e, 0x001d, 0x001e,
+    0x001e, 0x001e, 0x0024, 0x001e, 0x001e, 0x0024, 0x0024, 0x0024,
+    0x001e, 0x001e, 0x0024, 0x0024, 0x001e, 0x0024, 0x0024, 0x001e,
+    0x001e, 0x001e, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0024, 0x0024, 0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
+    0x0024, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x0024, 0x0024, 0x001e, 0x001e, 0x001e,
+    0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024,
     0x001d, 0x001d, 0x001d, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d,
     0x001d, 0x001d, 0x0017, 0x0017, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -656,7 +684,7 @@ const unsigned short wine_linebreak_table[6800] =
     0x0024, 0x0024, 0x0024, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x0011, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013,
     0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013,
     0x001d, 0x001d, 0x001d, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012,
@@ -671,9 +699,9 @@ const unsigned short wine_linebreak_table[6800] =
     0x0024, 0x0024, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004,
-    0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0004, 0x0004, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0017, 0x0022, 0x0022, 0x0022, 0x001d, 0x0017, 0x0022,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d,
     0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004,
@@ -685,14 +713,12 @@ const unsigned short wine_linebreak_table[6800] =
     0x0012, 0x0022, 0x001d, 0x001d, 0x0015, 0x0015, 0x001d, 0x001d,
     0x0015, 0x0015, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013,
     0x0012, 0x0013, 0x0022, 0x0022, 0x0022, 0x0022, 0x0017, 0x001d,
-    0x0022, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0022, 0x0022, 0x001d, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x0025, 0x0025, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
@@ -705,18 +731,18 @@ const unsigned short wine_linebreak_table[6800] =
     0x001e, 0x001e, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x0016, 0x0016, 0x001e, 0x001e, 0x001e,
-    0x0011, 0x0016, 0x001e, 0x0016, 0x001e, 0x0016, 0x001e, 0x0016,
-    0x001e, 0x0016, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x0016, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x0011, 0x0027, 0x001e, 0x0027, 0x001e, 0x0027, 0x001e, 0x0027,
+    0x001e, 0x0027, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x0027, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x0016, 0x001e, 0x0016, 0x001e, 0x0016,
-    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0016, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0016, 0x0016, 0x0011,
+    0x001e, 0x001e, 0x001e, 0x0027, 0x001e, 0x0027, 0x001e, 0x0027,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, 0x0027, 0x0011,
     0x0011, 0x0004, 0x0004, 0x0016, 0x0016, 0x0016, 0x0016, 0x001e,
-    0x0016, 0x0016, 0x001e, 0x0016, 0x001e, 0x0016, 0x001e, 0x0016,
-    0x001e, 0x0016, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0016, 0x0016, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x0016, 0x0016, 0x0016, 0x0016, 0x001e,
+    0x0016, 0x0027, 0x001e, 0x0027, 0x001e, 0x0027, 0x001e, 0x0027,
+    0x001e, 0x0027, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, 0x0027, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x0016, 0x0027, 0x0016, 0x0016, 0x001e,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
@@ -727,8 +753,8 @@ const unsigned short wine_linebreak_table[6800] =
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0011,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016,
-    0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016,
+    0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027,
+    0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0016, 0x001e, 0x001e,
@@ -741,14 +767,14 @@ const unsigned short wine_linebreak_table[6800] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0022, 0x0017, 0x0022,
     0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c,
     0x001c, 0x001c, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0004, 0x0004, 0x0004, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x001d, 0x001d,
+    0x0004, 0x0004, 0x0004, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004,
     0x0004, 0x0004, 0x001d, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d,
     0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
@@ -787,6 +813,8 @@ const unsigned short wine_linebreak_table[6800] =
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023,
+    0x0022, 0x0022, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
@@ -812,11 +840,15 @@ const unsigned short wine_linebreak_table[6800] =
     0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
     0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
     0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x0004, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x0011,
-    0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0026, 0x0004, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x0026, 0x001d, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0011,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0011, 0x0026, 0x0011,
+    0x0026, 0x0026, 0x0011, 0x0026, 0x0026, 0x0011, 0x0026, 0x0026,
+    0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026,
+    0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -845,9 +877,9 @@ const unsigned short wine_linebreak_table[6800] =
     0x001e, 0x001e, 0x001e, 0x0012, 0x001e, 0x0013, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x0012, 0x001e, 0x0013, 0x001e, 0x0012,
-    0x0013, 0x0013, 0x0012, 0x0013, 0x0013, 0x0016, 0x001d, 0x0016,
-    0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016,
-    0x0016, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0013, 0x0013, 0x0012, 0x0013, 0x0013, 0x0016, 0x001d, 0x0027,
+    0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027,
+    0x0027, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0016, 0x0016,
index 086de73..f640688 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode BiDi mirroring */
-/* generated from http://www.unicode.org/Public/6.0.0/ucd/BidiMirroring.txt */
+/* generated from http://www.unicode.org/Public/6.2.0/ucd/BidiMirroring.txt */
 /* DO NOT EDIT!! */
 
 #include <wine/unicode.h>
@@ -244,7 +244,7 @@ const WCHAR wine_mirror_map[3292] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0001, 0xffff, 0x0001, 0xffff, 0x0000,
-    0x0001, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0xffff, 0x0000, 0x0002, 0x0000, 0xfffe, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0xffff, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0xffff, 0x0000,
     0x0000, 0x0000, 0x0001, 0xffff, 0x0001, 0xffff, 0x0001, 0xffff,
index 2dde6fe..be68e9c 100644 (file)
@@ -479,6 +479,12 @@ typedef struct {
     GPOS_PosLookupRecord PosLookupRecord[1];
 } GPOS_ChainContextPosFormat3_4;
 
+typedef struct {
+    WORD PosFormat;
+    WORD ExtensionLookupType;
+    DWORD ExtensionOffset;
+} GPOS_ExtensionPosFormat1;
+
 /**********
  * CMAP
  **********/
@@ -1166,6 +1172,25 @@ static VOID GPOS_get_value_record_offsets(const BYTE* head, GPOS_ValueRecord *Va
     if (ValueFormat & 0xFF00) FIXME("Unhandled Value Format %x\n",ValueFormat&0xFF00);
 }
 
+static const BYTE *GPOS_get_subtable(const OT_LookupTable *look, int index)
+{
+    int offset = GET_BE_WORD(look->SubTable[index]);
+
+    if (GET_BE_WORD(look->LookupType) == 9)
+    {
+        const GPOS_ExtensionPosFormat1 *ext = (const GPOS_ExtensionPosFormat1 *)((const BYTE *)look + offset);
+        if (GET_BE_WORD(ext->PosFormat) == 1)
+        {
+            offset += GET_BE_DWORD(ext->ExtensionOffset);
+        }
+        else
+        {
+            FIXME("Unhandled Extension Positioning Format %i\n",GET_BE_WORD(ext->PosFormat));
+        }
+    }
+    return (const BYTE *)look + offset;
+}
+
 static VOID GPOS_apply_SingleAdjustment(const OT_LookupTable *look, const SCRIPT_ANALYSIS *analysis, const WORD *glyphs, INT glyph_index,
                                         INT glyph_count, INT ppem, LPPOINT ptAdjust, LPPOINT ptAdvance)
 {
@@ -1175,9 +1200,8 @@ static VOID GPOS_apply_SingleAdjustment(const OT_LookupTable *look, const SCRIPT
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        const GPOS_SinglePosFormat1 *spf1;
-        WORD offset = GET_BE_WORD(look->SubTable[j]);
-        spf1 = (const GPOS_SinglePosFormat1*)((const BYTE*)look+offset);
+        const GPOS_SinglePosFormat1 *spf1 = (const GPOS_SinglePosFormat1*)GPOS_get_subtable(look, j);
+        WORD offset;
         if (GET_BE_WORD(spf1->PosFormat) == 1)
         {
             offset = GET_BE_WORD(spf1->Coverage);
@@ -1253,9 +1277,8 @@ static INT GPOS_apply_PairAdjustment(const OT_LookupTable *look, const SCRIPT_AN
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        const GPOS_PairPosFormat1 *ppf1;
-        WORD offset = GET_BE_WORD(look->SubTable[j]);
-        ppf1 = (const GPOS_PairPosFormat1*)((const BYTE*)look+offset);
+        const GPOS_PairPosFormat1 *ppf1 = (const GPOS_PairPosFormat1*)GPOS_get_subtable(look, j);
+        WORD offset;
         if (GET_BE_WORD(ppf1->PosFormat) == 1)
         {
             int index;
@@ -1292,7 +1315,7 @@ static INT GPOS_apply_PairAdjustment(const OT_LookupTable *look, const SCRIPT_AN
         }
         else if (GET_BE_WORD(ppf1->PosFormat) == 2)
         {
-            const GPOS_PairPosFormat2 *ppf2 = (const GPOS_PairPosFormat2*)((const BYTE*)look + offset);
+            const GPOS_PairPosFormat2 *ppf2 = (const GPOS_PairPosFormat2*)ppf1;
             int index;
             WORD ValueFormat1 = GET_BE_WORD( ppf2->ValueFormat1 );
             WORD ValueFormat2 = GET_BE_WORD( ppf2->ValueFormat2 );
@@ -1339,13 +1362,11 @@ static VOID GPOS_apply_CursiveAttachment(const OT_LookupTable *look, const SCRIP
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        const GPOS_CursivePosFormat1 *cpf1;
-        WORD offset = GET_BE_WORD(look->SubTable[j]);
-        cpf1 = (const GPOS_CursivePosFormat1*)((const BYTE*)look+offset);
+        const GPOS_CursivePosFormat1 *cpf1 = (const GPOS_CursivePosFormat1 *)GPOS_get_subtable(look, j);
         if (GET_BE_WORD(cpf1->PosFormat) == 1)
         {
             int index_exit, index_entry;
-            offset = GET_BE_WORD( cpf1->Coverage );
+            WORD offset = GET_BE_WORD( cpf1->Coverage );
             index_exit = GSUB_is_glyph_covered((const BYTE*)cpf1+offset, glyphs[glyph_index]);
             if (index_exit != -1 && cpf1->EntryExitRecord[index_exit].ExitAnchor!= 0)
             {
@@ -1389,10 +1410,7 @@ static int GPOS_apply_MarkToBase(ScriptCache *psc, const OT_LookupTable *look, c
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        int offset;
-        const GPOS_MarkBasePosFormat1 *mbpf1;
-        offset = GET_BE_WORD(look->SubTable[j]);
-        mbpf1 = (const GPOS_MarkBasePosFormat1*)((const BYTE*)look+offset);
+        const GPOS_MarkBasePosFormat1 *mbpf1 = (const GPOS_MarkBasePosFormat1 *)GPOS_get_subtable(look, j);
         if (GET_BE_WORD(mbpf1->PosFormat) == 1)
         {
             int offset = GET_BE_WORD(mbpf1->MarkCoverage);
@@ -1466,10 +1484,7 @@ static VOID GPOS_apply_MarkToLigature(const OT_LookupTable *look, const SCRIPT_A
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        int offset;
-        const GPOS_MarkLigPosFormat1 *mlpf1;
-        offset = GET_BE_WORD(look->SubTable[j]);
-        mlpf1 = (const GPOS_MarkLigPosFormat1*)((const BYTE*)look+offset);
+        const GPOS_MarkLigPosFormat1 *mlpf1 = (const GPOS_MarkLigPosFormat1 *)GPOS_get_subtable(look, j);
         if (GET_BE_WORD(mlpf1->PosFormat) == 1)
         {
             int offset = GET_BE_WORD(mlpf1->MarkCoverage);
@@ -1560,10 +1575,7 @@ static BOOL GPOS_apply_MarkToMark(const OT_LookupTable *look, const SCRIPT_ANALY
 
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
-        int offset;
-        const GPOS_MarkMarkPosFormat1 *mmpf1;
-        offset = GET_BE_WORD(look->SubTable[j]);
-        mmpf1 = (const GPOS_MarkMarkPosFormat1*)((const BYTE*)look+offset);
+        const GPOS_MarkMarkPosFormat1 *mmpf1 = (const GPOS_MarkMarkPosFormat1 *)GPOS_get_subtable(look, j);
         if (GET_BE_WORD(mmpf1->PosFormat) == 1)
         {
             int offset = GET_BE_WORD(mmpf1->Mark1Coverage);
@@ -1590,7 +1602,7 @@ static BOOL GPOS_apply_MarkToMark(const OT_LookupTable *look, const SCRIPT_ANALY
                     ma = (const GPOS_MarkArray*)((const BYTE*)mmpf1 + offset);
                     if (mark_index > GET_BE_WORD(ma->MarkCount))
                     {
-                        ERR("Mark index exeeded mark count\n");
+                        ERR("Mark index exceeded mark count\n");
                         return FALSE;
                     }
                     mr = &ma->MarkRecord[mark_index];
@@ -1631,13 +1643,10 @@ static INT GPOS_apply_ChainContextPos(ScriptCache *psc, LPOUTLINETEXTMETRICW lpo
     for (j = 0; j < GET_BE_WORD(look->SubTableCount); j++)
     {
         int offset;
-        const GPOS_ChainContextPosFormat3_1 *ccpf3;
+        const GPOS_ChainContextPosFormat3_1 *ccpf3 = (GPOS_ChainContextPosFormat3_1 *)GPOS_get_subtable(look, j);
         int dirLookahead = write_dir;
         int dirBacktrack = -1 * write_dir;
 
-        offset = GET_BE_WORD(look->SubTable[j]);
-        ccpf3 = (const GPOS_ChainContextPosFormat3_1*)((const BYTE*)look+offset);
-
         if (GET_BE_WORD(ccpf3->PosFormat) == 1)
         {
             FIXME("  TODO: subtype 1 (Simple Chaining Context Glyph Positioning)\n");
@@ -1723,11 +1732,33 @@ static INT GPOS_apply_lookup(ScriptCache *psc, LPOUTLINETEXTMETRICW lpotm, LPLOG
     int offset;
     const OT_LookupTable *look;
     int ppem = lpotm->otmTextMetrics.tmAscent + lpotm->otmTextMetrics.tmDescent - lpotm->otmTextMetrics.tmInternalLeading;
+    WORD type;
 
     offset = GET_BE_WORD(lookup->Lookup[lookup_index]);
     look = (const OT_LookupTable*)((const BYTE*)lookup + offset);
-    TRACE("type %i, flag %x, subtables %i\n",GET_BE_WORD(look->LookupType),GET_BE_WORD(look->LookupFlag),GET_BE_WORD(look->SubTableCount));
-    switch(GET_BE_WORD(look->LookupType))
+    type = GET_BE_WORD(look->LookupType);
+    TRACE("type %i, flag %x, subtables %i\n",type,GET_BE_WORD(look->LookupFlag),GET_BE_WORD(look->SubTableCount));
+    if (type == 9)
+    {
+        if (GET_BE_WORD(look->SubTableCount))
+        {
+            const GPOS_ExtensionPosFormat1 *ext = (const GPOS_ExtensionPosFormat1 *)((const BYTE *)look + GET_BE_WORD(look->SubTable[0]));
+            if (GET_BE_WORD(ext->PosFormat) == 1)
+            {
+                type = GET_BE_WORD(ext->ExtensionLookupType);
+                TRACE("extension type %i\n",type);
+            }
+            else
+            {
+                FIXME("Unhandled Extension Positioning Format %i\n",GET_BE_WORD(ext->PosFormat));
+            }
+        }
+        else
+        {
+            WARN("lookup type is Extension Positioning but no extension subtable exists\n");
+        }
+    }
+    switch (type)
     {
         case 1:
         {
@@ -1849,7 +1880,7 @@ static INT GPOS_apply_lookup(ScriptCache *psc, LPOUTLINETEXTMETRICW lpotm, LPLOG
             return GPOS_apply_ChainContextPos(psc, lpotm, lplogfont, analysis, piAdvance, lookup, look, glyphs, glyph_index, glyph_count, ppem, pGoffset);
         }
         default:
-            FIXME("We do not handle SubType %i\n",GET_BE_WORD(look->LookupType));
+            FIXME("We do not handle SubType %i\n",type);
     }
     return glyph_index+1;
 }
index 094c299..be416e5 100644 (file)
@@ -1,10 +1,10 @@
 /* Unicode Arabic shaping */
-/* generated from http://www.unicode.org/Public/6.0.0/ucd/ArabicShaping.txt */
+/* generated from http://www.unicode.org/Public/6.2.0/ucd/ArabicShaping.txt */
 /* DO NOT EDIT!! */
 
 //#include "wine/unicode.h"
 
-const unsigned short wine_shaping_table[2656] =
+const unsigned short wine_shaping_table[2752] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
@@ -54,64 +54,64 @@ const unsigned short wine_shaping_table[2656] =
     0x0410, 0x0420, 0x0430, 0x0440, 0x0450, 0x0460, 0x0470, 0x0480,
     0x0490, 0x04a0, 0x04b0, 0x0360, 0x04c0, 0x04d0, 0x04e0, 0x04f0,
     0x0340, 0x0340, 0x0500, 0x0510, 0x0520, 0x0530, 0x0540, 0x0550,
-    0x0340, 0x0560, 0x0570, 0x0340, 0x0340, 0x0580, 0x0340, 0x0340,
+    0x0340, 0x0560, 0x0570, 0x0340, 0x0580, 0x0590, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x05a0, 0x0340, 0x0340, 0x0340, 0x05b0, 0x05c0,
+    0x05d0, 0x0340, 0x0340, 0x05e0, 0x05f0, 0x0600, 0x0610, 0x0340,
+    0x0620, 0x0340, 0x0340, 0x0630, 0x0640, 0x0340, 0x0610, 0x0340,
+    0x0650, 0x0340, 0x0340, 0x0630, 0x0660, 0x0620, 0x0340, 0x0670,
+    0x0650, 0x0340, 0x0340, 0x0630, 0x0680, 0x0340, 0x0610, 0x0340,
+    0x0620, 0x0340, 0x0340, 0x0690, 0x0640, 0x06a0, 0x0610, 0x0340,
+    0x06b0, 0x0340, 0x0340, 0x0340, 0x06c0, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x06d0, 0x06e0, 0x06f0, 0x0610, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0690, 0x0700, 0x0340, 0x0610, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0640, 0x0340, 0x0610, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0710, 0x0720, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0730, 0x0740, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0750, 0x0760, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0770, 0x0340, 0x0780, 0x0340, 0x0340, 0x0340, 0x0790,
+    0x07a0, 0x07b0, 0x0360, 0x07c0, 0x06a0, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x07d0, 0x07e0, 0x0340, 0x07f0, 0x0510, 0x0800,
+    0x0810, 0x0350, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x07d0, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0590, 0x0340, 0x0340, 0x05a0, 0x05b0, 0x05c0, 0x05d0, 0x0340,
-    0x05e0, 0x0340, 0x0340, 0x05f0, 0x0600, 0x0340, 0x05d0, 0x0340,
-    0x0610, 0x0340, 0x0340, 0x05f0, 0x0620, 0x05e0, 0x0340, 0x0630,
-    0x0610, 0x0340, 0x0340, 0x05f0, 0x0640, 0x0340, 0x05d0, 0x0340,
-    0x05e0, 0x0340, 0x0340, 0x0650, 0x0600, 0x0660, 0x05d0, 0x0340,
-    0x0670, 0x0340, 0x0340, 0x0340, 0x0680, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0690, 0x06a0, 0x06b0, 0x05d0, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0650, 0x06c0, 0x0340, 0x05d0, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0600, 0x0340, 0x05d0, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x06d0, 0x06e0, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x06f0, 0x0700, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0710, 0x0720, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0730, 0x0340, 0x0740, 0x0340, 0x0340, 0x0340, 0x0750,
-    0x0760, 0x0770, 0x0360, 0x0780, 0x0660, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0790, 0x07a0, 0x0340, 0x07b0, 0x0510, 0x07c0,
-    0x07d0, 0x0350, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0790, 0x0340, 0x0340,
+    0x0340, 0x0820, 0x0340, 0x0820, 0x0340, 0x0610, 0x0340, 0x0610,
+    0x0340, 0x0340, 0x0340, 0x0830, 0x0840, 0x0850, 0x0340, 0x0340,
+    0x0860, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0870, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0880, 0x0890, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x07e0, 0x0340, 0x07e0, 0x0340, 0x05d0, 0x0340, 0x05d0,
-    0x0340, 0x0340, 0x0340, 0x07f0, 0x0800, 0x0810, 0x0340, 0x0340,
-    0x0820, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0830, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0840, 0x0850, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x08a0, 0x0340, 0x0340, 0x0340, 0x08b0, 0x08c0, 0x08d0,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0860, 0x0340, 0x0340, 0x0340, 0x0870, 0x0880, 0x0890,
+    0x08e0, 0x0340, 0x0340, 0x08f0, 0x06b0, 0x0340, 0x0900, 0x08e0,
+    0x0910, 0x0340, 0x0920, 0x0340, 0x0340, 0x0340, 0x0930, 0x0910,
+    0x0340, 0x0340, 0x0940, 0x0950, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0960, 0x0970, 0x0980,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x08a0, 0x0340, 0x0340, 0x08b0, 0x0670, 0x0340, 0x08c0, 0x08a0,
-    0x08d0, 0x0340, 0x08e0, 0x0340, 0x0340, 0x0340, 0x08f0, 0x08d0,
-    0x0340, 0x0340, 0x0900, 0x0910, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0920, 0x0930, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0940, 0x0900,
-    0x0950, 0x0340, 0x0960, 0x0340, 0x0340, 0x0340, 0x0970, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0990, 0x0940,
+    0x09a0, 0x0340, 0x09b0, 0x0340, 0x0340, 0x0340, 0x09c0, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0510,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x08d0,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0910,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360,
-    0x0340, 0x0340, 0x0980, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0990, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x09a0,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x08d0,
-    0x09b0, 0x0340, 0x06b0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x09c0, 0x0340, 0x0360, 0x08d0,
-    0x0340, 0x0340, 0x09d0, 0x0340, 0x09e0, 0x08d0, 0x0340, 0x0340,
-    0x0590, 0x0340, 0x0340, 0x09f0, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0a00, 0x0a10, 0x0a20, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0a30, 0x05e0, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x09d0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x09e0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x09f0,
+    0x0340, 0x0490, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0910,
+    0x0a00, 0x0340, 0x06f0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0980, 0x0340, 0x0360, 0x0910,
+    0x0340, 0x0340, 0x0a10, 0x0340, 0x0a20, 0x0910, 0x0340, 0x0340,
+    0x05d0, 0x0340, 0x0340, 0x0a30, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0a40, 0x0a50, 0x0a60, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0a70, 0x0620, 0x0340, 0x0a80, 0x06a0,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0a40, 0x0340,
-    0x0340, 0x0a50, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0a90, 0x0340,
+    0x0340, 0x0aa0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0360, 0x0340, 0x0940, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0360, 0x0340, 0x0990, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0580,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0ab0,
     /* values */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -185,8 +185,16 @@ const unsigned short wine_shaping_table[2656] =
     0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001,
     0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0002, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0002, 0x0004,
+    0x0004, 0x0002, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0002,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0002, 0x0004, 0x0000, 0x0000,
     0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0404, 0x0000, 0x0604, 0x0b04, 0x0f04, 0x1004, 0x1204, 0x1304,
+    0x0104, 0x0104, 0x0802, 0x0302, 0x3402, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
     0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -294,7 +302,7 @@ const unsigned short wine_shaping_table[2656] =
     0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
-    0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
     0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -305,6 +313,8 @@ const unsigned short wine_shaping_table[2656] =
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -314,15 +324,13 @@ const unsigned short wine_shaping_table[2656] =
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000,
+    0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001,
@@ -337,10 +345,14 @@ const unsigned short wine_shaping_table[2656] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
     0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001,
     0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
     0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000
 };
 
 const unsigned short wine_shaping_forms[256][4] =
index 9a372c7..d4159d0 100644 (file)
@@ -1341,7 +1341,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
                         if (original == Script_Punctuation2)
                             break;
                     }
-                    if (scriptInformation[scripts[j]].props.fComplex || asian)
+                    if (j >= 0 && (scriptInformation[scripts[j]].props.fComplex || asian))
                         scripts[i] = scripts[j];
                 }
             }
index 17a6eca..4a57f0e 100644 (file)
@@ -193,7 +193,7 @@ reactos/dll/win32/unicows         # Synced to Wine-1.3.32 (Win9x only, why do we
 reactos/dll/win32/updspapi        # Synced to Wine-1.5.4
 reactos/dll/win32/url             # Synced to Wine-1.5.19
 reactos/dll/win32/urlmon          # Synced to Wine-1.7.1
-reactos/dll/win32/usp10           # Synced to Wine-1.5.26
+reactos/dll/win32/usp10           # Synced to Wine-1.7.1
 reactos/dll/win32/uxtheme         # Forked
 reactos/dll/win32/vbscript        # Synced to Wine-1.5.26
 reactos/dll/win32/version         # Autosync