ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
December 2019
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
18 participants
225 discussions
Start a n
N
ew thread
[reactos] 01/01: [SDK][ATL] Use CStringW in CImage
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=03854056a214e3bcd1acd…
commit 03854056a214e3bcd1acdaf8da077c504a2bd711 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 23 20:19:48 2019 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Mon Dec 23 20:19:48 2019 +0900 [SDK][ATL] Use CStringW in CImage --- sdk/lib/atl/atlimage.h | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/sdk/lib/atl/atlimage.h b/sdk/lib/atl/atlimage.h index 757dac8f5e2..f124c9a1483 100644 --- a/sdk/lib/atl/atlimage.h +++ b/sdk/lib/atl/atlimage.h @@ -377,14 +377,7 @@ public: HRESULT Load(LPCTSTR pszFileName) throw() { // convert the file name string into Unicode - // TODO: use a string class -#ifdef UNICODE - LPCWSTR pszNameW = pszFileName; -#else - WCHAR szPath[MAX_PATH]; - ::MultiByteToWideChar(CP_ACP, 0, pszFileName, -1, szPath, MAX_PATH); - LPCWSTR pszNameW = szPath; -#endif + CStringW pszNameW(pszFileName); // create a GpBitmap object from file using namespace Gdiplus; @@ -555,14 +548,7 @@ public: // TODO & FIXME: set parameters (m_rgbTransColor etc.) // convert the file name string into Unicode - // TODO: use a string class -#ifdef UNICODE - LPCWSTR pszNameW = pszFileName; -#else - WCHAR szPath[MAX_PATH]; - ::MultiByteToWideChar(CP_ACP, 0, pszFileName, -1, szPath, MAX_PATH); - LPCWSTR pszNameW = szPath; -#endif + CStringW pszNameW(pszFileName); // if the file type is null, get the file type from extension const GUID *FileType = &guidFileType;
5 years
1
0
0
0
[reactos] 01/01: [SHIMGVW] Image Viewer transparent image fix (#2165)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ad319ef944e38829efcdc…
commit ad319ef944e38829efcdca3d6a8d778fffbe61e4 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 23 19:43:20 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Mon Dec 23 19:43:20 2019 +0900 [SHIMGVW] Image Viewer transparent image fix (#2165) If the pixel is transparent or translucent, fill the background with a checkered pattern. CORE-15287 --- dll/win32/shimgvw/shimgvw.c | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/dll/win32/shimgvw/shimgvw.c b/dll/win32/shimgvw/shimgvw.c index 46553b3e23f..7f2d0393a71 100644 --- a/dll/win32/shimgvw/shimgvw.c +++ b/dll/win32/shimgvw/shimgvw.c @@ -580,6 +580,26 @@ ImageView_UpdateWindow(HWND hwnd) UpdateWindow(hwnd); } +static HBRUSH CreateCheckerBoardBrush(HDC hdc) +{ + static const CHAR pattern[] = + "\x28\x00\x00\x00\x10\x00\x00\x00\x10\x00\x00\x00\x01\x00\x04\x00\x00\x00" + "\x00\x00\x80\x00\x00\x00\x23\x2E\x00\x00\x23\x2E\x00\x00\x10\x00\x00\x00" + "\x00\x00\x00\x00\x99\x99\x99\x00\xCC\xCC\xCC\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x11\x11\x11" + "\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00" + "\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00" + "\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11" + "\x11\x11\x00\x00\x00\x00\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00" + "\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11" + "\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11" + "\x00\x00\x00\x00\x11\x11\x11\x11\x00\x00\x00\x00\x11\x11\x11\x11"; + + return CreateDIBPatternBrushPt(pattern, DIB_RGB_COLORS); +} + static VOID ImageView_DrawImage(HWND hwnd) { @@ -591,6 +611,7 @@ ImageView_DrawImage(HWND hwnd) HDC hdc; HBRUSH white; HGDIOBJ hbrOld; + UINT uFlags; hdc = BeginPaint(hwnd, &ps); if (!hdc) @@ -652,9 +673,24 @@ ImageView_DrawImage(HWND hwnd) GdipSetSmoothingMode(graphics, SmoothingModeHighQuality); } - hbrOld = SelectObject(hdc, GetStockObject(NULL_BRUSH)); - Rectangle(hdc, x - 1, y - 1, x + ZoomedWidth + 1, y + ZoomedHeight + 1); - SelectObject(hdc, hbrOld); + uFlags = 0; + GdipGetImageFlags(image, &uFlags); + + if (uFlags & (ImageFlagsHasAlpha | ImageFlagsHasTranslucent)) + { + HBRUSH hbr = CreateCheckerBoardBrush(hdc); + hbrOld = SelectObject(hdc, hbr); + Rectangle(hdc, x - 1, y - 1, x + ZoomedWidth + 1, y + ZoomedHeight + 1); + SelectObject(hdc, hbrOld); + DeleteObject(hbr); + } + else + { + hbrOld = SelectObject(hdc, GetStockObject(NULL_BRUSH)); + Rectangle(hdc, x - 1, y - 1, x + ZoomedWidth + 1, y + ZoomedHeight + 1); + SelectObject(hdc, hbrOld); + } + GdipDrawImageRectI(graphics, image, x, y, ZoomedWidth, ZoomedHeight); } GdipDeleteGraphics(graphics);
5 years
1
0
0
0
[reactos] 01/01: [UNICODE] Re-trial to fix Travis build
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=12c683a846dc644951ad3…
commit 12c683a846dc644951ad3d3f2f619dfb1f8bbbe2 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 23 17:05:38 2019 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Mon Dec 23 17:05:38 2019 +0900 [UNICODE] Re-trial to fix Travis build --- sdk/tools/unicode/CMakeLists.txt | 2 -- sdk/tools/unicode/casemap.c | 4 ++++ sdk/tools/unicode/collation.c | 4 ++++ sdk/tools/unicode/compose.c | 4 ++++ sdk/tools/unicode/wctype.c | 4 ++++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sdk/tools/unicode/CMakeLists.txt b/sdk/tools/unicode/CMakeLists.txt index 1a32c2e4845..85c668dead7 100644 --- a/sdk/tools/unicode/CMakeLists.txt +++ b/sdk/tools/unicode/CMakeLists.txt @@ -1,6 +1,4 @@ -include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/psdk) - add_definitions(-DDECLSPEC_HIDDEN=) list(APPEND SOURCE diff --git a/sdk/tools/unicode/casemap.c b/sdk/tools/unicode/casemap.c index 2905000c6e9..b58fe229498 100644 --- a/sdk/tools/unicode/casemap.c +++ b/sdk/tools/unicode/casemap.c @@ -2,7 +2,11 @@ /* generated from
http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt
*/ /* DO NOT EDIT!! */ +#ifdef __REACTOS__ +#include "wine/unicode.h" +#else #include "windef.h" +#endif const WCHAR wine_casemap_lower[4259] = { diff --git a/sdk/tools/unicode/collation.c b/sdk/tools/unicode/collation.c index d4f15c396ff..61598a4eec9 100644 --- a/sdk/tools/unicode/collation.c +++ b/sdk/tools/unicode/collation.c @@ -2,7 +2,11 @@ /* generated from
http://www.unicode.org/reports/tr10/allkeys.txt
*/ /* DO NOT EDIT!! */ +#ifdef __REACTOS__ +#include "wine/unicode.h" +#else #include "windef.h" +#endif const unsigned int DECLSPEC_HIDDEN collation_table[12800] = { diff --git a/sdk/tools/unicode/compose.c b/sdk/tools/unicode/compose.c index b817d1a0586..a5cef418a1d 100644 --- a/sdk/tools/unicode/compose.c +++ b/sdk/tools/unicode/compose.c @@ -2,7 +2,11 @@ /* generated from
http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt
*/ /* DO NOT EDIT!! */ +#ifdef __REACTOS__ +#include "wine/unicode.h" +#else #include "windef.h" +#endif static const WCHAR table[0x85e] = { diff --git a/sdk/tools/unicode/wctype.c b/sdk/tools/unicode/wctype.c index 661966c5a1f..d4eaf4a1931 100644 --- a/sdk/tools/unicode/wctype.c +++ b/sdk/tools/unicode/wctype.c @@ -1,7 +1,11 @@ /* Unicode ctype tables */ /* Automatically generated; DO NOT EDIT!! */ +#ifdef __REACTOS__ +#include "wine/unicode.h" +#else #include "windef.h" +#endif const unsigned short wine_wctype_table[17152] = {
5 years
1
0
0
0
[reactos] 01/01: [UNICODE] Trial to fix Travis build
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1ec0e9f6c36f25a7db393…
commit 1ec0e9f6c36f25a7db39394c3efc2e7e7f1c5c0d Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Mon Dec 23 16:46:52 2019 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Mon Dec 23 16:47:01 2019 +0900 [UNICODE] Trial to fix Travis build --- sdk/tools/unicode/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/tools/unicode/CMakeLists.txt b/sdk/tools/unicode/CMakeLists.txt index 85c668dead7..1a32c2e4845 100644 --- a/sdk/tools/unicode/CMakeLists.txt +++ b/sdk/tools/unicode/CMakeLists.txt @@ -1,4 +1,6 @@ +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/sdk/include/psdk) + add_definitions(-DDECLSPEC_HIDDEN=) list(APPEND SOURCE
5 years
1
0
0
0
[reactos] 01/01: [UNICODE] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1a472d9453dddfff8f8f2…
commit 1a472d9453dddfff8f8f25ec2e6df303e656ad3f Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:58:51 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:58:51 2019 +0100 [UNICODE] Sync with Wine Staging 4.18. CORE-16441 --- boot/bootdata/hivesys.inf | 1 + media/doc/README.WINE | 2 +- sdk/tools/unicode/CMakeLists.txt | 1 + sdk/tools/unicode/c_037.c | 2 +- sdk/tools/unicode/c_10000.c | 2 +- sdk/tools/unicode/c_10001.c | 1505 +--------------------------- sdk/tools/unicode/c_10002.c | 2 +- sdk/tools/unicode/c_10003.c | 2 +- sdk/tools/unicode/c_10004.c | 2 +- sdk/tools/unicode/c_10005.c | 2 +- sdk/tools/unicode/c_10006.c | 2 +- sdk/tools/unicode/c_10007.c | 2 +- sdk/tools/unicode/c_10008.c | 2 +- sdk/tools/unicode/c_10010.c | 2 +- sdk/tools/unicode/c_10017.c | 2 +- sdk/tools/unicode/c_10021.c | 2 +- sdk/tools/unicode/c_10029.c | 2 +- sdk/tools/unicode/c_1006.c | 2 +- sdk/tools/unicode/c_10079.c | 2 +- sdk/tools/unicode/c_10081.c | 2 +- sdk/tools/unicode/c_10082.c | 2 +- sdk/tools/unicode/c_1026.c | 2 +- sdk/tools/unicode/c_1250.c | 2 +- sdk/tools/unicode/c_1251.c | 2 +- sdk/tools/unicode/c_1252.c | 2 +- sdk/tools/unicode/c_1253.c | 2 +- sdk/tools/unicode/c_1254.c | 2 +- sdk/tools/unicode/c_1255.c | 2 +- sdk/tools/unicode/c_1256.c | 2 +- sdk/tools/unicode/c_1257.c | 2 +- sdk/tools/unicode/c_1258.c | 2 +- sdk/tools/unicode/c_1361.c | 2 +- sdk/tools/unicode/c_20127.c | 2 +- sdk/tools/unicode/c_20866.c | 2 +- sdk/tools/unicode/c_20932.c | 2 +- sdk/tools/unicode/c_21866.c | 2 +- sdk/tools/unicode/c_28591.c | 2 +- sdk/tools/unicode/c_28592.c | 2 +- sdk/tools/unicode/c_28593.c | 2 +- sdk/tools/unicode/c_28594.c | 2 +- sdk/tools/unicode/c_28595.c | 2 +- sdk/tools/unicode/c_28596.c | 2 +- sdk/tools/unicode/c_28597.c | 2 +- sdk/tools/unicode/c_28598.c | 2 +- sdk/tools/unicode/c_28599.c | 2 +- sdk/tools/unicode/c_28600.c | 2 +- sdk/tools/unicode/{c_10021.c => c_28601.c} | 82 +- sdk/tools/unicode/c_28603.c | 2 +- sdk/tools/unicode/c_28604.c | 2 +- sdk/tools/unicode/c_28605.c | 2 +- sdk/tools/unicode/c_28606.c | 2 +- sdk/tools/unicode/c_424.c | 2 +- sdk/tools/unicode/c_437.c | 2 +- sdk/tools/unicode/c_500.c | 2 +- sdk/tools/unicode/c_737.c | 2 +- sdk/tools/unicode/c_775.c | 2 +- sdk/tools/unicode/c_850.c | 2 +- sdk/tools/unicode/c_852.c | 2 +- sdk/tools/unicode/c_855.c | 2 +- sdk/tools/unicode/c_856.c | 2 +- sdk/tools/unicode/c_857.c | 2 +- sdk/tools/unicode/c_860.c | 2 +- sdk/tools/unicode/c_861.c | 2 +- sdk/tools/unicode/c_862.c | 2 +- sdk/tools/unicode/c_863.c | 2 +- sdk/tools/unicode/c_864.c | 2 +- sdk/tools/unicode/c_865.c | 2 +- sdk/tools/unicode/c_866.c | 2 +- sdk/tools/unicode/c_869.c | 2 +- sdk/tools/unicode/c_874.c | 2 +- sdk/tools/unicode/c_875.c | 2 +- sdk/tools/unicode/c_878.c | 2 +- sdk/tools/unicode/c_932.c | 2 +- sdk/tools/unicode/c_936.c | 2 +- sdk/tools/unicode/c_949.c | 2 +- sdk/tools/unicode/c_950.c | 2 +- sdk/tools/unicode/casemap.c | 131 ++- sdk/tools/unicode/collation.c | 4 +- sdk/tools/unicode/compose.c | 4 +- sdk/tools/unicode/cptable.c | 14 +- sdk/tools/unicode/mbtowc.c | 76 +- sdk/tools/unicode/sortkey.c | 239 ++--- sdk/tools/unicode/string.c | 8 +- sdk/tools/unicode/wctype.c | 102 +- 84 files changed, 426 insertions(+), 1885 deletions(-) diff --git a/boot/bootdata/hivesys.inf b/boot/bootdata/hivesys.inf index bcb9bdd1203..c80ab610e0c 100644 --- a/boot/bootdata/hivesys.inf +++ b/boot/bootdata/hivesys.inf @@ -984,6 +984,7 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28597",0x00000000,"c_28597 HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28598",0x00000000,"c_28598.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28599",0x00000000,"c_28599.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28600",0x00000000,"c_28600.nls" +HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28601",0x00000000,"c_28601.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28603",0x00000000,"c_28603.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28604",0x00000000,"c_28604.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28605",0x00000000,"c_28605.nls" diff --git a/media/doc/README.WINE b/media/doc/README.WINE index acaca77a32d..333a07a1d97 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -15,7 +15,7 @@ wine-patches(a)winehq.com and ros-dev(a)reactos.org The following build tools are shared with Wine. -sdk/tools/unicode # Synced to WineStaging-3.3 +sdk/tools/unicode # Synced to WineStaging-4.18 sdk/tools/widl # Synced to WineStaging-4.0 sdk/tools/wpp # Synced to WineStaging-2.9 diff --git a/sdk/tools/unicode/CMakeLists.txt b/sdk/tools/unicode/CMakeLists.txt index 7e758617e7d..85c668dead7 100644 --- a/sdk/tools/unicode/CMakeLists.txt +++ b/sdk/tools/unicode/CMakeLists.txt @@ -45,6 +45,7 @@ list(APPEND SOURCE c_28598.c c_28599.c c_28600.c + c_28601.c c_28603.c c_28604.c c_28605.c diff --git a/sdk/tools/unicode/c_037.c b/sdk/tools/unicode/c_037.c index 18e25f3cfba..22b9ec83e8a 100644 --- a/sdk/tools/unicode/c_037.c +++ b/sdk/tools/unicode/c_037.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, diff --git a/sdk/tools/unicode/c_10000.c b/sdk/tools/unicode/c_10000.c index bae5e52b517..c38602e2845 100644 --- a/sdk/tools/unicode/c_10000.c +++ b/sdk/tools/unicode/c_10000.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; -static const unsigned char uni2cp_low[4894] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10001.c b/sdk/tools/unicode/c_10001.c index 5bee88e42bd..9908cc5e0ba 100644 --- a/sdk/tools/unicode/c_10001.c +++ b/sdk/tools/unicode/c_10001.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[27136] = +static const WCHAR cp2uni[15616] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -1523,1491 +1523,6 @@ static const WCHAR cp2uni[27136] = 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 81 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, - 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, - 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, - 0x3005, 0x3006, 0x3007, 0x30fc, 0x2014, 0x2010, 0xff0f, 0xff3c, - 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, - 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, - 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, - 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x30fb, - 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, - 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, - 0xff04, 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, - 0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, - 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, - 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, - 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, - 0x222c, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x25ef, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 82 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, - 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, - 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, - 0xff39, 0xff3a, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, - 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, - 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, - 0xff58, 0xff59, 0xff5a, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x3041, - 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, - 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, - 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, - 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, - 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, - 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, - 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, - 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, - 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, - 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, - 0x3092, 0x3093, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 83 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, - 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, - 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, - 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, - 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, - 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, - 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, - 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30fb, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, - 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x0391, - 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, - 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, - 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x03b1, - 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, - 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, - 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 84 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, - 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, - 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, - 0x042f, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, - 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x30fb, - 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, - 0x044e, 0x044f, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x2500, - 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, - 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, - 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, - 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 85 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, - 0x2470, 0x2471, 0x2472, 0x2473, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x2474, 0x2475, - 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, - 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, - 0x2486, 0x2487, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x2776, 0x2777, 0x2778, 0x30fb, - 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0xf860, 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, - 0x248e, 0x248f, 0x2490, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0x216a, 0x216b, 0xf862, 0xf861, 0xf860, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, - 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217a, 0x217b, 0xf862, - 0xf861, 0xf860, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0, - 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, - 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, - 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 86 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x339c, 0x339f, 0x339d, 0x33a0, 0x33a4, 0xff4d, 0x33a1, 0x33a5, - 0x339e, 0x33a2, 0x338e, 0xff47, 0x338f, 0x33c4, 0x3396, 0x3397, - 0x2113, 0x3398, 0x33b3, 0x33b2, 0x33b1, 0x33b0, 0x2109, 0x33d4, - 0x33cb, 0x3390, 0x3385, 0x3386, 0x3387, 0xf860, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x2116, 0x33cd, 0x2121, 0xf861, 0x2664, - 0x2667, 0x2661, 0x2662, 0x2660, 0x2663, 0x2665, 0x2666, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x3020, 0x260e, 0x3004, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x261e, - 0x261c, 0x261d, 0x261f, 0x21c6, 0x21c4, 0x21c5, 0xf860, 0x21e8, - 0x21e6, 0x21e7, 0x21e9, 0x21e8, 0x21e6, 0x21e7, 0x21e9, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 87 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x3230, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3240, - 0x3237, 0x3242, 0x3243, 0x3239, 0x323a, 0x3231, 0x323e, 0x3234, - 0x3232, 0x323b, 0x3236, 0x3233, 0x3235, 0x323c, 0x323d, 0x323f, - 0x3238, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x30fb, 0x3349, - 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, - 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, - 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x337b, 0x30fb, - 0x301d, 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, - 0x32a7, 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, - 0x2252, 0x5927, 0x5c0f, 0x32a4, 0x32a5, 0x32a6, 0x32a7, 0x32a8, - 0x32a9, 0x3296, 0x329d, 0x3298, 0x329e, 0x63a7, 0x3299, 0x3349, - 0x3322, 0x334d, 0x3314, 0x3316, 0x3305, 0x3333, 0x334e, 0x3303, - 0x3336, 0x3318, 0x3315, 0x3327, 0x3351, 0x334a, 0x3339, 0x3357, - 0x330d, 0x3342, 0x3323, 0x3326, 0x333b, 0x332b, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x3300, 0x331e, 0x332a, - 0x3331, 0x3347, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x337e, 0x337d, 0x337c, - 0x337b, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x337f, 0xf862, 0xf862, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 88 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x222e, 0x221f, 0x22bf, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x301d, 0x301f, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x3094, 0x30fb, 0x30f7, 0x30f8, 0x30f9, 0x30fa, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x4e9c, - 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, - 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, - 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0, - 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7, - 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f, - 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4, - 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba, - 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863, - 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2, - 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328, - 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb, - 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 89 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, - 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, - 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, - 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, - 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, - 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, - 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, - 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x30fb, - 0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, - 0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, - 0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, - 0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, 0x62bc, - 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, - 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, - 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29, - 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1, - 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1, - 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2, - 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377, - 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e, - 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5, - 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a, - 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094, - 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8a */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, - 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, - 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, - 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, - 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, - 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, - 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, - 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x30fb, - 0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, - 0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, - 0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, - 0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, 0x7ca5, - 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, - 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, - 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db, - 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22, - 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1, - 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3, - 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665, - 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9, - 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854, - 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947, - 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a, - 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8b */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, - 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, - 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, - 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, - 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, - 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, - 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, - 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x30fb, - 0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, - 0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, - 0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, - 0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, 0x4f9b, - 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, - 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, - 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed, - 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff, - 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40, - 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747, - 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd, - 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1, - 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7, - 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177, - 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685, - 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8c */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, - 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, - 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, - 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, - 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, - 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, - 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, - 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x30fb, - 0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, - 0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, - 0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, - 0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, 0x691c, - 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, - 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, - 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26, - 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa, - 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64, - 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0, - 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8, - 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348, - 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e, - 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9, - 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f, - 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8d */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, - 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, - 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, - 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, - 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, - 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, - 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, - 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x30fb, - 0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, - 0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, - 0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, - 0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, 0x6b64, - 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, - 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, - 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee, - 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750, - 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e, - 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08, - 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30, - 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a, - 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2, - 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e, - 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c, - 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8e */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, - 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, - 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, - 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, - 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, - 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, - 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, - 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x30fb, - 0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, - 0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, - 0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, - 0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, 0x6b21, - 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, - 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, - 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7, - 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea, - 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a, - 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e, - 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa, - 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8, - 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88, - 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3, - 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39, - 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 8f */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, - 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, - 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, - 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, - 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, - 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, - 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, - 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x30fb, - 0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, - 0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, - 0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, - 0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, 0x52dd, - 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, - 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, - 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377, - 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35, - 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7, - 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7, - 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f, - 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e, - 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197, - 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe, - 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72, - 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 90 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, - 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, - 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, - 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, - 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, - 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, - 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, - 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x30fb, - 0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, - 0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, - 0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, - 0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, 0x6f84, - 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, - 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, - 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db, - 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb, - 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb, - 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d, - 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9, - 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0, - 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343, - 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0, - 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e, - 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 91 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, - 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, - 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, - 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, - 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, - 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, - 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, - 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x30fb, - 0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, - 0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, - 0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, - 0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, 0x81d3, - 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, - 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, - 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b, - 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70, - 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235, - 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010, - 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0, - 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e, - 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d, - 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258, - 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1, - 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 92 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, - 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, - 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, - 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, - 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, - 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, - 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, - 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x30fb, - 0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, - 0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, - 0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, - 0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, 0x5e16, - 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, - 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, - 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577, - 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd, - 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd, - 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43, - 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70, - 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4, - 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824, - 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5, - 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0, - 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 93 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, - 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, - 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, - 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, - 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, - 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, - 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, - 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x30fb, - 0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, - 0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, - 0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, - 0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, 0x8463, - 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, - 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, - 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4, - 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3, - 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad, - 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb, - 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c, - 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3, - 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b, - 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3, - 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089, - 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 94 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, - 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, - 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, - 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, - 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, - 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, - 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, - 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x30fb, - 0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, - 0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, - 0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, - 0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, 0x51fd, - 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, - 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, - 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859, - 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06, - 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed, - 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169, - 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543, - 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2, - 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae, - 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb, - 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae, - 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 95 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, - 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, - 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, - 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, - 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, - 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, - 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, - 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x30fb, - 0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, - 0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, - 0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, - 0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, 0x798f, - 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, - 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, - 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e, - 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4, - 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1, - 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909, - 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9, - 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355, - 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155, - 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305, - 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96, - 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 96 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, - 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, - 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, - 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, - 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, - 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, - 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, - 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x30fb, - 0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, - 0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, - 0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, - 0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, 0x6f2b, - 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, - 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, - 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61, - 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df, - 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9, - 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984, - 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132, - 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b, - 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f, - 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384, - 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae, - 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 97 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, - 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, - 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, - 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, - 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, - 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, - 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, - 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x30fb, - 0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, - 0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, - 0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, - 0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, 0x75e2, - 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, - 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, - 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5, - 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599, - 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f, - 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b, - 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3, - 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4, - 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c, - 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6, - 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190, - 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 98 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, - 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, - 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, - 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, - 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, - 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, - 0x6e7e, 0x7897, 0x8155, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x5f0c, - 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, - 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, - 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6, - 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed, - 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57, - 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70, - 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce, - 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a, - 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021, - 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047, - 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078, - 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 99 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, - 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, - 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, - 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, - 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, - 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, - 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, - 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x30fb, - 0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, - 0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, - 0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, - 0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, 0x8fa7, - 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, - 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, - 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a, - 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, - 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918, - 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae, - 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee, - 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c, - 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f, - 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b, - 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8, - 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9a */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, - 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, - 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, - 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, - 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, - 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, - 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, - 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x30fb, - 0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, - 0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, - 0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, - 0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, 0x5708, - 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, - 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, - 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4, - 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a, - 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862, - 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9, - 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5, - 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4, - 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902, - 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932, - 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958, - 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9b */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, - 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, - 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, - 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, - 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, - 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, - 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, - 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x30fb, - 0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, - 0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, - 0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, - 0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, 0x5c50, - 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, - 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, - 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced, - 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b, - 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52, - 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82, - 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc, - 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2, - 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37, - 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62, - 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0, - 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9c */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, - 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, - 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, - 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, - 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, - 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, - 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, - 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x30fb, - 0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, - 0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, - 0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, - 0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, 0x6084, - 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, - 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, - 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa, - 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e, - 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d, - 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b, - 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175, - 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191, - 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3, - 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6, - 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208, - 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9d */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, - 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, - 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, - 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, - 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, - 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, - 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, - 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x30fb, - 0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, - 0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, - 0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, - 0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, 0x64da, - 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, - 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, - 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505, - 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, - 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d, - 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab, - 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db, - 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb, - 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649, - 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662, - 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d, - 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9e */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, - 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, - 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, - 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, - 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, - 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, - 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, - 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x30fb, - 0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, - 0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, - 0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, - 0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, 0x68d4, - 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, - 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, - 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e, - 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e, - 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1, - 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3, - 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de, - 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7, - 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12, - 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78, - 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90, - 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, 0x30fb, 0x30fb, 0x30fb, - /* lead byte 9f */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, - 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, - 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, - 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, - 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, - 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, - 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, - 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x30fb, - 0x9ebe, 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, - 0x6c55, 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, - 0x6c7e, 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, - 0x6cbd, 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, 0x6cba, - 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b, - 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63, - 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, 0x6fe4, - 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, 0x6db8, - 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, 0x6dfa, - 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, 0x6e2e, - 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, 0x6e76, - 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, 0x6e1d, - 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, 0x6ebd, - 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, 0x6ec2, - 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, 0x6f3f, - 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e0 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, - 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, - 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, - 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, - 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, - 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, - 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, - 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x30fb, - 0x70d9, 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, - 0x7166, 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, - 0x7195, 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, - 0x71d4, 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, 0x71f9, - 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230, - 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258, - 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72a2, - 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, 0x72d2, - 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, 0x730a, - 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, 0x733e, - 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, 0x7378, - 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, 0x73c0, - 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, 0x73f8, - 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, 0x745c, - 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, 0x749e, - 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e1 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, - 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, - 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, - 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, - 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, - 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, - 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, - 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x30fb, - 0x75fc, 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, - 0x7609, 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, - 0x7630, 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, - 0x7662, 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, 0x7672, - 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e, - 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9, - 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, 0x76e5, - 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, 0x7729, - 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, 0x7747, - 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, 0x7779, - 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, 0x77b9, - 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, 0x77da, - 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, 0x7820, - 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, 0x788c, - 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, 0x78d4, - 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e2 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, - 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, - 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, - 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, - 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, - 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, - 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, - 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x30fb, - 0x7ab6, 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, - 0x7acf, 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, - 0x7ae6, 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, - 0x7b18, 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, 0x7b7a, - 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74, - 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f, - 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, 0x7b99, - 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, 0x7be9, - 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, 0x7c13, - 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, 0x7c2a, - 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, 0x7c4f, - 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, 0x7c6c, - 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, 0x7ca1, - 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, 0x7cc0, - 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, 0x7cef, - 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e3 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, - 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, - 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, - 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, - 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, - 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, - 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, - 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x30fb, - 0x7e32, 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, - 0x7e79, 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, - 0x8fae, 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, - 0x7e94, 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, 0x7f45, - 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58, - 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86, - 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, 0x7f9a, - 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, 0x8b71, - 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, 0x7fe9, - 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, 0x8018, - 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, 0x8046, - 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, 0x8072, - 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, 0x8085, - 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, 0x80e5, - 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, 0x80f1, - 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e4 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, - 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, - 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, - 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, - 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, - 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, - 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, - 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x30fb, - 0x8262, 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, - 0x827e, 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, - 0x82e3, 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, - 0x82fb, 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, 0x8335, - 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, - 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f, - 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, 0x83b5, - 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, 0x83eb, - 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, 0x8407, - 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, 0x8506, - 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, 0x846b, - 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, 0x8479, - 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, 0x84cd, - 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, 0x8521, - 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, 0x8514, - 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e5 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, - 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, - 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, - 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, - 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, - 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, - 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, - 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x30fb, - 0x86df, 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, - 0x86fb, 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, - 0x8737, 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, - 0x874c, 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, 0x8753, - 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb, - 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7, - 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, 0x87fe, - 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, 0x8822, - 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, 0x8842, - 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, 0x889e, - 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88ae, - 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, 0x88c3, - 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, 0x88fc, - 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, 0x8943, - 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, 0x8936, - 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e6 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, - 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, - 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, - 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, - 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, - 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, - 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, - 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x30fb, - 0x8ae4, 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, - 0x8b0c, 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, - 0x8b33, 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, - 0x8b4f, 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, 0x8b5f, - 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92, - 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48, - 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, 0x8c7a, - 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, 0x8c7c, - 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, 0x8cae, - 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, 0x8cfa, - 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, 0x8d10, - 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, 0x8d71, - 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, 0x8dda, - 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, 0x8de3, - 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, 0x8e1f, - 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e7 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, - 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, - 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, - 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, - 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, - 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, - 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, - 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x30fb, - 0x8f62, 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, - 0x8fb7, 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, - 0x9005, 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, - 0x9016, 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, 0x904f, - 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058, - 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d, - 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, 0x90b1, - 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, 0x9119, - 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, - 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, 0x91af, - 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, 0x91cb, - 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, 0x91f6, - 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, 0x9257, - 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, 0x9250, - 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, 0x92b7, - 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e8 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, - 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, - 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, - 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, - 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, - 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, - 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, - 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x30fb, - 0x95a0, 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, - 0x95ca, 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, - 0x95dc, 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, - 0x9642, 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, 0x965d, - 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697, - 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8, - 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, 0x970d, - 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, 0x9711, - 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, 0x973d, - 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, 0x9760, - 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, 0x9785, - 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, 0x979c, - 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, 0x97c8, - 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, 0x97f5, - 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, 0x9846, - 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, 0x30fb, 0x30fb, 0x30fb, - /* lead byte e9 */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, - 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, - 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, - 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, - 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, - 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, - 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, - 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x30fb, - 0x9a3e, 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, - 0x9a64, 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, - 0x9acf, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, - 0x9ae6, 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, 0x9afb, - 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27, - 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43, - 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, 0x9b83, - 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, 0x9bc0, - 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, 0x9be2, - 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, 0x9c15, - 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, 0x9c0a, - 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, 0x9c47, - 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, 0x9c78, - 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, 0x9d06, - 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, 0x9d12, - 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, 0x30fb, 0x30fb, 0x30fb, - /* lead byte ea */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, - 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, - 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, - 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, - 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, - 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, - 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, - 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x30fb, - 0x9ef4, 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, - 0x9f08, 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, - 0x9f54, 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, - 0x9f6a, 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, 0x582f, - 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte eb */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x3001, 0x3002, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0xffe3, 0xfe33, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fc, 0xfe31, 0x2010, 0x30fb, 0x30fb, - 0x301c, 0x2016, 0xff5c, 0x2026, 0xfe30, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0xfe35, 0xfe36, 0xfe39, 0xfe3a, 0xff3b, 0xff3d, 0xfe37, - 0xfe38, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, 0xfe42, 0xfe43, - 0xfe44, 0xfe3b, 0xfe3c, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0xff1d, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte ec */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x3041, - 0x30fb, 0x3043, 0x30fb, 0x3045, 0x30fb, 0x3047, 0x30fb, 0x3049, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x3063, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x3083, 0x30fb, 0x3085, 0x30fb, 0x3087, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x308e, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - /* lead byte ed */ - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, - 0x30a1, 0x891c, 0x30a3, 0x9288, 0x30a5, 0x4fc9, 0x30a7, 0x6631, - 0x30a9, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, - 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, - 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, - 0x50f4, 0x50d8, 0x30c3, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, - 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, - 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, - 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0x30fb, - 0xfa10, 0x589e, 0x58b2, 0x30e3, 0x5953, 0x30e5, 0x595d, 0x30e7, - 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x30ee, 0x5c1e, - 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0x30f5, 0x30f6, 0x5d6d, - 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, - 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, - 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, - 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, - 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, - 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, - 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, - 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, - 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, - 0x6d6f, 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, - 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, - 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, - 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x30fb, 0x30fb, 0x30fb, /* lead byte ee */ 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, 0x30fb, @@ -3523,10 +2038,10 @@ static const unsigned char cp2uni_leadbytes[256] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, - 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3535,13 +2050,13 @@ static const unsigned char cp2uni_leadbytes[256] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, - 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, 0x67, 0x68, 0x69, 0x00, 0x00, 0x00 + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x00, 0x00, 0x00 }; -static const unsigned short uni2cp_low[27631] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_10002.c b/sdk/tools/unicode/c_10002.c index dad36486337..c0ce4289bbc 100644 --- a/sdk/tools/unicode/c_10002.c +++ b/sdk/tools/unicode/c_10002.c @@ -2947,7 +2947,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x56, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static const unsigned short uni2cp_low[27673] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_10003.c b/sdk/tools/unicode/c_10003.c index 32ac146c398..0c333d3c438 100644 --- a/sdk/tools/unicode/c_10003.c +++ b/sdk/tools/unicode/c_10003.c @@ -3046,7 +3046,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x00, 0x00 }; -static const unsigned short uni2cp_low[39984] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_10004.c b/sdk/tools/unicode/c_10004.c index c80fcc2ab6e..7a186f484ce 100644 --- a/sdk/tools/unicode/c_10004.c +++ b/sdk/tools/unicode/c_10004.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x06af, 0x0688, 0x0691, 0xf83e, 0xf83f, 0xf840, 0x0698, 0x06d2 }; -static const unsigned char uni2cp_low[5476] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10005.c b/sdk/tools/unicode/c_10005.c index 137de05b3a4..011dbde6194 100644 --- a/sdk/tools/unicode/c_10005.c +++ b/sdk/tools/unicode/c_10005.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x05e8, 0x05e9, 0x05ea, 0xf81a, 0xf81b, 0xf81c, 0xf81d, 0xf81e }; -static const unsigned char uni2cp_low[5610] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10006.c b/sdk/tools/unicode/c_10006.c index 1ccdffa9805..f9ae17aff44 100644 --- a/sdk/tools/unicode/c_10006.c +++ b/sdk/tools/unicode/c_10006.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0x003f }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10007.c b/sdk/tools/unicode/c_10007.c index 0934fc5e2b1..5e791dfef5a 100644 --- a/sdk/tools/unicode/c_10007.c +++ b/sdk/tools/unicode/c_10007.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4 }; -static const unsigned char uni2cp_low[5406] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10008.c b/sdk/tools/unicode/c_10008.c index 48699a99ecb..62cfa7a1d53 100644 --- a/sdk/tools/unicode/c_10008.c +++ b/sdk/tools/unicode/c_10008.c @@ -2749,7 +2749,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static const unsigned short uni2cp_low[27310] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_10010.c b/sdk/tools/unicode/c_10010.c index 90b83269b6e..469b90f1c27 100644 --- a/sdk/tools/unicode/c_10010.c +++ b/sdk/tools/unicode/c_10010.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; -static const unsigned char uni2cp_low[5145] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10017.c b/sdk/tools/unicode/c_10017.c index 165fc52e134..f71a6c95654 100644 --- a/sdk/tools/unicode/c_10017.c +++ b/sdk/tools/unicode/c_10017.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x20ac }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10021.c b/sdk/tools/unicode/c_10021.c index 1665fa175ff..5742d9a9c14 100644 --- a/sdk/tools/unicode/c_10021.c +++ b/sdk/tools/unicode/c_10021.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0e58, 0x0e59, 0x00ae, 0x00a9, 0x003f, 0x003f, 0x00fe, 0x003f }; -static const unsigned char uni2cp_low[5138] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10029.c b/sdk/tools/unicode/c_10029.c index af4f00623a6..bcecb4291ff 100644 --- a/sdk/tools/unicode/c_10029.c +++ b/sdk/tools/unicode/c_10029.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7 }; -static const unsigned char uni2cp_low[4887] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1006.c b/sdk/tools/unicode/c_1006.c index da6575eb0a2..fc2c6f6e54f 100644 --- a/sdk/tools/unicode/c_1006.c +++ b/sdk/tools/unicode/c_1006.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0xfe8b, 0xfef1, 0xfef2, 0xfef3, 0xfbb0, 0xfbae, 0xfe7c, 0xfe7d }; -static const unsigned char uni2cp_low[5165] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10079.c b/sdk/tools/unicode/c_10079.c index 31533fc9eb2..8937ad4cd0e 100644 --- a/sdk/tools/unicode/c_10079.c +++ b/sdk/tools/unicode/c_10079.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; -static const unsigned char uni2cp_low[4889] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10081.c b/sdk/tools/unicode/c_10081.c index 6d4733eee98..3c9c15e848b 100644 --- a/sdk/tools/unicode/c_10081.c +++ b/sdk/tools/unicode/c_10081.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; -static const unsigned char uni2cp_low[5104] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10082.c b/sdk/tools/unicode/c_10082.c index b2a4ce70740..e6433e37418 100644 --- a/sdk/tools/unicode/c_10082.c +++ b/sdk/tools/unicode/c_10082.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7 }; -static const unsigned char uni2cp_low[5145] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1026.c b/sdk/tools/unicode/c_1026.c index 4887024ab27..f6e8bce2bac 100644 --- a/sdk/tools/unicode/c_1026.c +++ b/sdk/tools/unicode/c_1026.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, diff --git a/sdk/tools/unicode/c_1250.c b/sdk/tools/unicode/c_1250.c index 81ef082ce84..d31ebdba5b5 100644 --- a/sdk/tools/unicode/c_1250.c +++ b/sdk/tools/unicode/c_1250.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 }; -static const unsigned char uni2cp_low[4055] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1251.c b/sdk/tools/unicode/c_1251.c index 51e929aff70..85829f2b713 100644 --- a/sdk/tools/unicode/c_1251.c +++ b/sdk/tools/unicode/c_1251.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f }; -static const unsigned char uni2cp_low[2803] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1252.c b/sdk/tools/unicode/c_1252.c index 5a0d23ab214..8933ec16508 100644 --- a/sdk/tools/unicode/c_1252.c +++ b/sdk/tools/unicode/c_1252.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; -static const unsigned char uni2cp_low[4043] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1253.c b/sdk/tools/unicode/c_1253.c index 79675f0c2ab..67f8b90ea01 100644 --- a/sdk/tools/unicode/c_1253.c +++ b/sdk/tools/unicode/c_1253.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xf8fb }; -static const unsigned char uni2cp_low[2881] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1254.c b/sdk/tools/unicode/c_1254.c index 4cf3e261213..1cf716f0dd6 100644 --- a/sdk/tools/unicode/c_1254.c +++ b/sdk/tools/unicode/c_1254.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff }; -static const unsigned char uni2cp_low[4055] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1255.c b/sdk/tools/unicode/c_1255.c index 521da855aaa..f9201b0fe0d 100644 --- a/sdk/tools/unicode/c_1255.c +++ b/sdk/tools/unicode/c_1255.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x05e8, 0x05e9, 0x05ea, 0xf894, 0xf895, 0x200e, 0x200f, 0xf896 }; -static const unsigned char uni2cp_low[2060] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1256.c b/sdk/tools/unicode/c_1256.c index a7b1e16fe07..09a2c85dc24 100644 --- a/sdk/tools/unicode/c_1256.c +++ b/sdk/tools/unicode/c_1256.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2 }; -static const unsigned char uni2cp_low[2318] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1257.c b/sdk/tools/unicode/c_1257.c index f8acd5b8228..eb27154d01e 100644 --- a/sdk/tools/unicode/c_1257.c +++ b/sdk/tools/unicode/c_1257.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9 }; -static const unsigned char uni2cp_low[1739] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1258.c b/sdk/tools/unicode/c_1258.c index ef6c76e4e6d..62680c5dc0b 100644 --- a/sdk/tools/unicode/c_1258.c +++ b/sdk/tools/unicode/c_1258.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff }; -static const unsigned char uni2cp_low[2010] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_1361.c b/sdk/tools/unicode/c_1361.c index f9b83df71f3..66bbe77cf89 100644 --- a/sdk/tools/unicode/c_1361.c +++ b/sdk/tools/unicode/c_1361.c @@ -3805,7 +3805,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x70, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static const unsigned short uni2cp_low[37401] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_20127.c b/sdk/tools/unicode/c_20127.c index 76583aa1427..f028d081497 100644 --- a/sdk/tools/unicode/c_20127.c +++ b/sdk/tools/unicode/c_20127.c @@ -39,7 +39,7 @@ static const WCHAR cp2uni[256] = 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_20866.c b/sdk/tools/unicode/c_20866.c index 2831375e316..66a9453d7af 100644 --- a/sdk/tools/unicode/c_20866.c +++ b/sdk/tools/unicode/c_20866.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_20932.c b/sdk/tools/unicode/c_20932.c index 5c8664cfc81..5aa3590750c 100644 --- a/sdk/tools/unicode/c_20932.c +++ b/sdk/tools/unicode/c_20932.c @@ -2683,7 +2683,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }; -static const unsigned short uni2cp_low[27558] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_21866.c b/sdk/tools/unicode/c_21866.c index c7103bb2803..4776ec5a15d 100644 --- a/sdk/tools/unicode/c_21866.c +++ b/sdk/tools/unicode/c_21866.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28591.c b/sdk/tools/unicode/c_28591.c index 2cdd870b9f8..de7419595fb 100644 --- a/sdk/tools/unicode/c_28591.c +++ b/sdk/tools/unicode/c_28591.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28592.c b/sdk/tools/unicode/c_28592.c index ed765441ea4..4e764523bef 100644 --- a/sdk/tools/unicode/c_28592.c +++ b/sdk/tools/unicode/c_28592.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28593.c b/sdk/tools/unicode/c_28593.c index df250616754..0167ea8c801 100644 --- a/sdk/tools/unicode/c_28593.c +++ b/sdk/tools/unicode/c_28593.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9 }; -static const unsigned char uni2cp_low[5136] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28594.c b/sdk/tools/unicode/c_28594.c index f50d96531bc..757d15fc2d1 100644 --- a/sdk/tools/unicode/c_28594.c +++ b/sdk/tools/unicode/c_28594.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28595.c b/sdk/tools/unicode/c_28595.c index 0c06b70b4be..559c8803a9f 100644 --- a/sdk/tools/unicode/c_28595.c +++ b/sdk/tools/unicode/c_28595.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28596.c b/sdk/tools/unicode/c_28596.c index 39a6b6af45c..711084d630f 100644 --- a/sdk/tools/unicode/c_28596.c +++ b/sdk/tools/unicode/c_28596.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, 0xf7f2, 0xf7f3, 0xf7f4 }; -static const unsigned char uni2cp_low[5372] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28597.c b/sdk/tools/unicode/c_28597.c index 4464adf5a06..4e64910eb1d 100644 --- a/sdk/tools/unicode/c_28597.c +++ b/sdk/tools/unicode/c_28597.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xf7c7 }; -static const unsigned char uni2cp_low[5142] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28598.c b/sdk/tools/unicode/c_28598.c index 0546a3e9a49..60a7878fcb8 100644 --- a/sdk/tools/unicode/c_28598.c +++ b/sdk/tools/unicode/c_28598.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x05e8, 0x05e9, 0x05ea, 0xf7bd, 0xf7be, 0x200e, 0x200f, 0xf7bf }; -static const unsigned char uni2cp_low[5346] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28599.c b/sdk/tools/unicode/c_28599.c index 385047eb85d..43b0183dc56 100644 --- a/sdk/tools/unicode/c_28599.c +++ b/sdk/tools/unicode/c_28599.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28600.c b/sdk/tools/unicode/c_28600.c index bbc21a6b0c9..397e1586811 100644 --- a/sdk/tools/unicode/c_28600.c +++ b/sdk/tools/unicode/c_28600.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_10021.c b/sdk/tools/unicode/c_28601.c similarity index 94% copy from sdk/tools/unicode/c_10021.c copy to sdk/tools/unicode/c_28601.c index 1665fa175ff..84c22b85109 100644 --- a/sdk/tools/unicode/c_10021.c +++ b/sdk/tools/unicode/c_28601.c @@ -1,5 +1,5 @@ -/* code page 10021 (Mac Thai) */ -/* generated from
http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/THAI.TXT
*/ +/* code page 28601 (ISO 8859-11 Latin (Thai)) */ +/* generated from
http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-11.TXT
*/ /* DO NOT EDIT!! */ #include "wine/unicode.h" @@ -22,10 +22,10 @@ static const WCHAR cp2uni[256] = 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, - 0x00ab, 0x00bb, 0x2026, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x201c, 0x201d, 0x0e4d, - 0x0090, 0x2022, 0x0e31, 0x0e47, 0x0e34, 0x0e35, 0x0e36, 0x0e37, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x2018, 0x2019, 0x009f, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, + 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, @@ -33,14 +33,14 @@ static const WCHAR cp2uni[256] = 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, - 0x0e38, 0x0e39, 0x0e3a, 0x2060, 0x200b, 0x2013, 0x2014, 0x0e3f, + 0x0e38, 0x0e39, 0x0e3a, 0x003f, 0x003f, 0x003f, 0x00de, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f, + 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x00ae, 0x00a9, 0x003f, 0x003f, 0x00fe, 0x003f + 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x003f, 0x003f, 0x00fe, 0x003f }; -static const unsigned char uni2cp_low[5138] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, @@ -59,18 +59,18 @@ static const unsigned char uni2cp_low[5138] = 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f, - 0x22, 0xfb, 0x61, 0x80, 0x3f, 0x2d, 0xfa, 0xde, + 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, - 0x2c, 0x31, 0x6f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, + 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, - 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, + 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, @@ -132,9 +132,9 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, - 0x79, 0x27, 0x22, 0x9d, 0x9e, 0x3f, 0x3f, 0x3f, + 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, - 0x27, 0xde, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, + 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, @@ -142,7 +142,7 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ - 0x60, 0x27, 0x5e, 0x7e, 0xde, 0xde, 0x3f, 0x3f, + 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -181,12 +181,12 @@ static const unsigned char uni2cp_low[5138] = 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0x92, 0xd2, 0xd3, 0x94, 0x95, 0x96, 0x97, 0xd8, + 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0xe0, - 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x93, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x8f, 0x3f, 0xef, 0xf0, + 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, + 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0xf9, 0xfa, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -303,18 +303,18 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0xdc, 0x3f, 0x3f, 0x3f, 0x3f, - 0x2d, 0x2d, 0x3f, 0xdd, 0xde, 0xdd, 0x3f, 0x5f, - 0x9d, 0x9e, 0x2c, 0x9d, 0x8d, 0x8e, 0x2c, 0x3f, - 0x3f, 0x3f, 0x91, 0x3f, 0x2e, 0x3f, 0x82, 0x3f, + 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, + 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x9d, 0x3f, 0x3f, - 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xde, 0x3f, + 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, + 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, - 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, @@ -339,7 +339,7 @@ static const unsigned char uni2cp_low[5138] = 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, - 0xee, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, + 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -370,7 +370,7 @@ static const unsigned char uni2cp_low[5138] = /* 0x2205 .. 0x22ff */ 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, - 0x2f, 0x5c, 0x2a, 0x3f, 0x91, 0x56, 0x3f, 0x3f, + 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -380,7 +380,7 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x81, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -520,9 +520,9 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3c, 0x3e, 0x80, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x8d, 0x8e, 0x2c, + 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -590,8 +590,8 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe49 .. 0xfeff */ - 0xde, 0xde, 0xde, 0xde, 0x5f, 0x5f, 0x5f, 0x2c, - 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xde, + 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, + 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -642,7 +642,7 @@ static const unsigned char uni2cp_low[5138] = 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, - 0x4c, 0x3f, 0xde, 0x7c, 0x59, 0x3f, 0x3f, 0x7c, + 0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, @@ -715,9 +715,9 @@ static const unsigned short uni2cp_high[256] = 0x1212, 0x1212, 0x1212, 0x0f6d, 0x1212, 0x1212, 0x1024, 0x1123 }; -const struct sbcs_table DECLSPEC_HIDDEN cptable_10021 = +const struct sbcs_table DECLSPEC_HIDDEN cptable_28601 = { - { 10021, 1, 0x003f, 0x003f, "Mac Thai" }, + { 28601, 1, 0x003f, 0x003f, "ISO 8859-11 Latin (Thai)" }, cp2uni, cp2uni, uni2cp_low, diff --git a/sdk/tools/unicode/c_28603.c b/sdk/tools/unicode/c_28603.c index c1e49fd4feb..3ffdf47c0c0 100644 --- a/sdk/tools/unicode/c_28603.c +++ b/sdk/tools/unicode/c_28603.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28604.c b/sdk/tools/unicode/c_28604.c index ab2e1601263..e8d065aaccc 100644 --- a/sdk/tools/unicode/c_28604.c +++ b/sdk/tools/unicode/c_28604.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28605.c b/sdk/tools/unicode/c_28605.c index 2848eded750..1beaf49d384 100644 --- a/sdk/tools/unicode/c_28605.c +++ b/sdk/tools/unicode/c_28605.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_28606.c b/sdk/tools/unicode/c_28606.c index cab3ee1c0a5..644031f8fae 100644 --- a/sdk/tools/unicode/c_28606.c +++ b/sdk/tools/unicode/c_28606.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_424.c b/sdk/tools/unicode/c_424.c index 8b7da590747..396d6ab27a7 100644 --- a/sdk/tools/unicode/c_424.c +++ b/sdk/tools/unicode/c_424.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0038, 0x0039, 0x00b3, 0x003f, 0x003f, 0x003f, 0x00fe, 0x009f }; -static const unsigned char uni2cp_low[5119] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, diff --git a/sdk/tools/unicode/c_437.c b/sdk/tools/unicode/c_437.c index 9df7a7f7094..a96dfd773e8 100644 --- a/sdk/tools/unicode/c_437.c +++ b/sdk/tools/unicode/c_437.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_500.c b/sdk/tools/unicode/c_500.c index 42e81076549..4638ab397fa 100644 --- a/sdk/tools/unicode/c_500.c +++ b/sdk/tools/unicode/c_500.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, diff --git a/sdk/tools/unicode/c_737.c b/sdk/tools/unicode/c_737.c index 0399c4bfd75..d354abfb717 100644 --- a/sdk/tools/unicode/c_737.c +++ b/sdk/tools/unicode/c_737.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_775.c b/sdk/tools/unicode/c_775.c index 1b3594c8dff..83af4e1da20 100644 --- a/sdk/tools/unicode/c_775.c +++ b/sdk/tools/unicode/c_775.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_850.c b/sdk/tools/unicode/c_850.c index 674651f0c3f..1758f322c6c 100644 --- a/sdk/tools/unicode/c_850.c +++ b/sdk/tools/unicode/c_850.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_852.c b/sdk/tools/unicode/c_852.c index d614e8ab134..bf72038d274 100644 --- a/sdk/tools/unicode/c_852.c +++ b/sdk/tools/unicode/c_852.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4884] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_855.c b/sdk/tools/unicode/c_855.c index 807c6790ee8..cd52aad890b 100644 --- a/sdk/tools/unicode/c_855.c +++ b/sdk/tools/unicode/c_855.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_856.c b/sdk/tools/unicode/c_856.c index 0b152b6096e..fa2bd490fb8 100644 --- a/sdk/tools/unicode/c_856.c +++ b/sdk/tools/unicode/c_856.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[5119] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_857.c b/sdk/tools/unicode/c_857.c index 9bd36c1c5bb..e4651699adb 100644 --- a/sdk/tools/unicode/c_857.c +++ b/sdk/tools/unicode/c_857.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[5099] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_860.c b/sdk/tools/unicode/c_860.c index d6d147c1117..5e50a6a7e68 100644 --- a/sdk/tools/unicode/c_860.c +++ b/sdk/tools/unicode/c_860.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_861.c b/sdk/tools/unicode/c_861.c index 67cd1438a1b..b72cc1d2e93 100644 --- a/sdk/tools/unicode/c_861.c +++ b/sdk/tools/unicode/c_861.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_862.c b/sdk/tools/unicode/c_862.c index 18a8a997b74..0ce99eadb65 100644 --- a/sdk/tools/unicode/c_862.c +++ b/sdk/tools/unicode/c_862.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[5162] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_863.c b/sdk/tools/unicode/c_863.c index 3bea216b636..eec7837230d 100644 --- a/sdk/tools/unicode/c_863.c +++ b/sdk/tools/unicode/c_863.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_864.c b/sdk/tools/unicode/c_864.c index e3088b6be9c..ff17014f483 100644 --- a/sdk/tools/unicode/c_864.c +++ b/sdk/tools/unicode/c_864.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xf8c0 }; -static const unsigned char uni2cp_low[5342] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_865.c b/sdk/tools/unicode/c_865.c index 5b5f1ce1bb7..ffbe8e170ba 100644 --- a/sdk/tools/unicode/c_865.c +++ b/sdk/tools/unicode/c_865.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_866.c b/sdk/tools/unicode/c_866.c index 37fb6b0f37a..8eb6d19edb0 100644 --- a/sdk/tools/unicode/c_866.c +++ b/sdk/tools/unicode/c_866.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_869.c b/sdk/tools/unicode/c_869.c index 70cff9a5fc5..38f52cc370d 100644 --- a/sdk/tools/unicode/c_869.c +++ b/sdk/tools/unicode/c_869.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0 }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_874.c b/sdk/tools/unicode/c_874.c index e5a83388a66..fa8db37fba3 100644 --- a/sdk/tools/unicode/c_874.c +++ b/sdk/tools/unicode/c_874.c @@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] = 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8 }; -static const unsigned char uni2cp_low[2588] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_875.c b/sdk/tools/unicode/c_875.c index ba6f2e64917..768305ad55b 100644 --- a/sdk/tools/unicode/c_875.c +++ b/sdk/tools/unicode/c_875.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x0038, 0x0039, 0x00b3, 0x00a9, 0x001a, 0x001a, 0x00bb, 0x009f }; -static const unsigned char uni2cp_low[4927] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, diff --git a/sdk/tools/unicode/c_878.c b/sdk/tools/unicode/c_878.c index 16f0e257e32..cf294fc3a51 100644 --- a/sdk/tools/unicode/c_878.c +++ b/sdk/tools/unicode/c_878.c @@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] = 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a }; -static const unsigned char uni2cp_low[5403] = +static const unsigned char uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/sdk/tools/unicode/c_932.c b/sdk/tools/unicode/c_932.c index 51293800548..f42b2a15c97 100644 --- a/sdk/tools/unicode/c_932.c +++ b/sdk/tools/unicode/c_932.c @@ -2056,7 +2056,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x00, 0x00, 0x00 }; -static const unsigned short uni2cp_low[27210] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_936.c b/sdk/tools/unicode/c_936.c index 09786ebbace..b6b275b93de 100644 --- a/sdk/tools/unicode/c_936.c +++ b/sdk/tools/unicode/c_936.c @@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 }; -static const unsigned short uni2cp_low[28622] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_949.c b/sdk/tools/unicode/c_949.c index da1f1c9f5d8..6e8c5d1b5c9 100644 --- a/sdk/tools/unicode/c_949.c +++ b/sdk/tools/unicode/c_949.c @@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 }; -static const unsigned short uni2cp_low[37466] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/c_950.c b/sdk/tools/unicode/c_950.c index 74eddfc1750..a6ccd05bd73 100644 --- a/sdk/tools/unicode/c_950.c +++ b/sdk/tools/unicode/c_950.c @@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] = 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 }; -static const unsigned short uni2cp_low[31731] = +static const unsigned short uni2cp_low[] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, diff --git a/sdk/tools/unicode/casemap.c b/sdk/tools/unicode/casemap.c index bfab3233eee..2905000c6e9 100644 --- a/sdk/tools/unicode/casemap.c +++ b/sdk/tools/unicode/casemap.c @@ -1,18 +1,18 @@ /* Unicode case mappings */ -/* generated from
http://www.unicode.org/Public/10.0.0/ucd/UnicodeData.txt
*/ +/* generated from
http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt
*/ /* DO NOT EDIT!! */ -#include "wine/unicode.h" +#include "windef.h" -const WCHAR wine_casemap_lower[4013] = +const WCHAR wine_casemap_lower[4259] = { /* index */ 0x01bf, 0x02bf, 0x03bf, 0x044f, 0x054f, 0x064f, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x06af, 0x0100, 0x0100, 0x077d, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x087d, 0x097c, - 0x0100, 0x0a79, 0x0100, 0x0100, 0x0afd, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0bfd, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0873, 0x0100, 0x0973, 0x0a72, + 0x0100, 0x0b6f, 0x0100, 0x0100, 0x0bf3, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0cf3, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, @@ -27,7 +27,7 @@ const WCHAR wine_casemap_lower[4013] = 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0cf0, 0x0dce, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0de6, 0x0ec4, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, @@ -38,7 +38,7 @@ const WCHAR wine_casemap_lower[4013] = 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0ead, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0fa3, /* defaults */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -288,6 +288,38 @@ const WCHAR wine_casemap_lower[4013] = 0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1c0a .. 0x1cff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf440, 0xf440, + 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, + 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, + 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, + 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, + 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, + 0xf440, 0x0000, 0x0000, 0xf440, 0xf440, 0xf440, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1e00 .. 0x1eff */ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, @@ -489,9 +521,9 @@ const WCHAR wine_casemap_lower[4013] = 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x5abc, 0x5ab1, 0x5ab5, 0x5abf, 0x5abc, 0x0000, 0x5aee, 0x5ad6, - 0x5aeb, 0x03a0, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5aeb, 0x03a0, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0xffd0, 0x5abd, 0x75c8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -530,15 +562,15 @@ const WCHAR wine_casemap_lower[4013] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; -const WCHAR wine_casemap_upper[4570] = +const WCHAR wine_casemap_upper[4838] = { /* index */ 0x019f, 0x029f, 0x039f, 0x045a, 0x0556, 0x0656, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x06dd, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x07db, 0x0864, 0x0963, 0x0a63, - 0x0100, 0x0b57, 0x0100, 0x0100, 0x0bdc, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0cc6, 0x0dc6, 0x0100, 0x0100, + 0x06dd, 0x0100, 0x0100, 0x07dd, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x08db, 0x0964, 0x0a63, 0x0b63, + 0x0100, 0x0c57, 0x0100, 0x0100, 0x0cdc, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0dc6, 0x0ec6, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, @@ -553,8 +585,8 @@ const WCHAR wine_casemap_upper[4570] = 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0e85, 0x0f62, - 0x0100, 0x0100, 0x0100, 0x101a, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0f85, 0x1062, + 0x0100, 0x0100, 0x0100, 0x1126, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, @@ -564,7 +596,7 @@ const WCHAR wine_casemap_upper[4570] = 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x10da, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x11e6, /* defaults */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -669,7 +701,7 @@ const WCHAR wine_casemap_upper[4570] = 0xff2f, 0xff2d, 0xa544, 0x29f7, 0xa541, 0x0000, 0x0000, 0xff2d, 0x0000, 0x29fd, 0xff2b, 0x0000, 0x0000, 0xff2a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29e7, 0x0000, 0x0000, - 0xff26, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0x0000, 0xa52a, + 0xff26, 0x0000, 0xa543, 0xff26, 0x0000, 0x0000, 0x0000, 0xa52a, 0xff26, 0xffbb, 0xff27, 0xff27, 0xffb9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa515, 0xa512, 0x0000, @@ -776,7 +808,7 @@ const WCHAR wine_casemap_upper[4570] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1379 .. 0x13ff */ + /* 0x1079 .. 0x10ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -787,13 +819,46 @@ const WCHAR wine_casemap_upper[4570] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, + 0x0bc0, 0x0bc0, 0x0000, 0x0000, 0x0bc0, 0x0bc0, 0x0bc0, + /* 0x1300 .. 0x13ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, - 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, /* 0x1c02 .. 0x1cff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -830,7 +895,7 @@ const WCHAR wine_casemap_upper[4570] = /* 0x1d77 .. 0x1dff */ 0x0000, 0x0000, 0x8a04, 0x0000, 0x0000, 0x0000, 0x0ee6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8a38, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -1066,13 +1131,13 @@ const WCHAR wine_casemap_upper[4570] = 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0030, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -1080,12 +1145,14 @@ const WCHAR wine_casemap_upper[4570] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xab48 .. 0xabff */ + /* 0xab3c .. 0xabff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xfc60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfc60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, @@ -1095,8 +1162,7 @@ const WCHAR wine_casemap_upper[4570] = 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, - 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6830, 0x6830, 0x6830, 0x6830, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -1104,6 +1170,7 @@ const WCHAR wine_casemap_upper[4570] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, /* 0xff40 .. 0xffff */ 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, diff --git a/sdk/tools/unicode/collation.c b/sdk/tools/unicode/collation.c index f354a75f686..d4f15c396ff 100644 --- a/sdk/tools/unicode/collation.c +++ b/sdk/tools/unicode/collation.c @@ -2,7 +2,9 @@ /* generated from
http://www.unicode.org/reports/tr10/allkeys.txt
*/ /* DO NOT EDIT!! */ -const unsigned int collation_table[12800] = +#include "windef.h" + +const unsigned int DECLSPEC_HIDDEN collation_table[12800] = { /* index */ 0x00000200, 0x00000300, 0x00000400, 0x00000500, 0x00000600, 0x00000700, 0x00000800, 0x00000900, diff --git a/sdk/tools/unicode/compose.c b/sdk/tools/unicode/compose.c index 71589f47c18..b817d1a0586 100644 --- a/sdk/tools/unicode/compose.c +++ b/sdk/tools/unicode/compose.c @@ -1,8 +1,8 @@ /* Unicode char composition */ -/* generated from
http://www.unicode.org/Public/10.0.0/ucd/UnicodeData.txt
*/ +/* generated from
http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt
*/ /* DO NOT EDIT!! */ -#include "wine/unicode.h" +#include "windef.h" static const WCHAR table[0x85e] = { diff --git a/sdk/tools/unicode/cptable.c b/sdk/tools/unicode/cptable.c index 03264f3dd52..760b17971c3 100644 --- a/sdk/tools/unicode/cptable.c +++ b/sdk/tools/unicode/cptable.c @@ -22,6 +22,10 @@ #include "wine/unicode.h" +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif + /* Everything below this line is generated automatically by make_unicode */ /* ### cpmap begin ### */ extern union cptable cptable_037; @@ -92,12 +96,13 @@ extern union cptable cptable_28597; extern union cptable cptable_28598; extern union cptable cptable_28599; extern union cptable cptable_28600; +extern union cptable cptable_28601; extern union cptable cptable_28603; extern union cptable cptable_28604; extern union cptable cptable_28605; extern union cptable cptable_28606; -static const union cptable * const cptables[72] = +static const union cptable * const cptables[73] = { &cptable_037, &cptable_424, @@ -167,6 +172,7 @@ static const union cptable * const cptables[72] = &cptable_28598, &cptable_28599, &cptable_28600, + &cptable_28601, &cptable_28603, &cptable_28604, &cptable_28605, @@ -175,8 +181,6 @@ static const union cptable * const cptables[72] = /* ### cpmap end ### */ /* Everything above this line is generated automatically by make_unicode */ -#define NB_CODEPAGES (sizeof(cptables)/sizeof(cptables[0])) - static int cmp_codepage( const void *codepage, const void *entry ) { @@ -189,7 +193,7 @@ const union cptable *wine_cp_get_table( unsigned int codepage ) { const union cptable **res; - if (!(res = bsearch( &codepage, cptables, NB_CODEPAGES, + if (!(res = bsearch( &codepage, cptables, ARRAY_SIZE( cptables ), sizeof(cptables[0]), cmp_codepage ))) return NULL; return *res; } @@ -198,6 +202,6 @@ const union cptable *wine_cp_get_table( unsigned int codepage ) /* enum valid codepages */ const union cptable *wine_cp_enum_table( unsigned int index ) { - if (index >= NB_CODEPAGES) return NULL; + if (index >= ARRAY_SIZE( cptables )) return NULL; return cptables[index]; } diff --git a/sdk/tools/unicode/mbtowc.c b/sdk/tools/unicode/mbtowc.c index 4977c82d8b1..471b87be6c0 100644 --- a/sdk/tools/unicode/mbtowc.c +++ b/sdk/tools/unicode/mbtowc.c @@ -22,7 +22,7 @@ #include "wine/unicode.h" -extern unsigned int wine_decompose( WCHAR ch, WCHAR *dst, unsigned int dstlen ) DECLSPEC_HIDDEN; +extern unsigned int wine_decompose( int flags, WCHAR ch, WCHAR *dst, unsigned int dstlen ) DECLSPEC_HIDDEN; /* check the code whether it is in Unicode Private Use Area (PUA). */ /* MB_ERR_INVALID_CHARS raises an error converting from 1-byte character to PUA. */ @@ -65,34 +65,52 @@ static inline int mbstowcs_sbcs( const struct sbcs_table *table, int flags, ret = -1; } - for (;;) + while (srclen >= 16) { - switch(srclen) - { - default: - case 16: dst[15] = cp2uni[src[15]]; - case 15: dst[14] = cp2uni[src[14]]; - case 14: dst[13] = cp2uni[src[13]]; - case 13: dst[12] = cp2uni[src[12]]; - case 12: dst[11] = cp2uni[src[11]]; - case 11: dst[10] = cp2uni[src[10]]; - case 10: dst[9] = cp2uni[src[9]]; - case 9: dst[8] = cp2uni[src[8]]; - case 8: dst[7] = cp2uni[src[7]]; - case 7: dst[6] = cp2uni[src[6]]; - case 6: dst[5] = cp2uni[src[5]]; - case 5: dst[4] = cp2uni[src[4]]; - case 4: dst[3] = cp2uni[src[3]]; - case 3: dst[2] = cp2uni[src[2]]; - case 2: dst[1] = cp2uni[src[1]]; - case 1: dst[0] = cp2uni[src[0]]; - case 0: break; - } - if (srclen < 16) return ret; - dst += 16; + dst[0] = cp2uni[src[0]]; + dst[1] = cp2uni[src[1]]; + dst[2] = cp2uni[src[2]]; + dst[3] = cp2uni[src[3]]; + dst[4] = cp2uni[src[4]]; + dst[5] = cp2uni[src[5]]; + dst[6] = cp2uni[src[6]]; + dst[7] = cp2uni[src[7]]; + dst[8] = cp2uni[src[8]]; + dst[9] = cp2uni[src[9]]; + dst[10] = cp2uni[src[10]]; + dst[11] = cp2uni[src[11]]; + dst[12] = cp2uni[src[12]]; + dst[13] = cp2uni[src[13]]; + dst[14] = cp2uni[src[14]]; + dst[15] = cp2uni[src[15]]; src += 16; + dst += 16; srclen -= 16; } + + /* now handle the remaining characters */ + src += srclen; + dst += srclen; + switch (srclen) + { + case 15: dst[-15] = cp2uni[src[-15]]; + case 14: dst[-14] = cp2uni[src[-14]]; + case 13: dst[-13] = cp2uni[src[-13]]; + case 12: dst[-12] = cp2uni[src[-12]]; + case 11: dst[-11] = cp2uni[src[-11]]; + case 10: dst[-10] = cp2uni[src[-10]]; + case 9: dst[-9] = cp2uni[src[-9]]; + case 8: dst[-8] = cp2uni[src[-8]]; + case 7: dst[-7] = cp2uni[src[-7]]; + case 6: dst[-6] = cp2uni[src[-6]]; + case 5: dst[-5] = cp2uni[src[-5]]; + case 4: dst[-4] = cp2uni[src[-4]]; + case 3: dst[-3] = cp2uni[src[-3]]; + case 2: dst[-2] = cp2uni[src[-2]]; + case 1: dst[-1] = cp2uni[src[-1]]; + case 0: break; + } + return ret; } /* mbstowcs for single-byte code page with char decomposition */ @@ -107,13 +125,13 @@ static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, int flags, { WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ for (len = 0; srclen; srclen--, src++) - len += wine_decompose( cp2uni[*src], dummy, 4 ); + len += wine_decompose( 0, cp2uni[*src], dummy, 4 ); return len; } for (len = dstlen; srclen && len; srclen--, src++) { - unsigned int res = wine_decompose( cp2uni[*src], dst, len ); + unsigned int res = wine_decompose( 0, cp2uni[*src], dst, len ); if (!res) break; len -= res; dst += res; @@ -219,7 +237,7 @@ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table, ch = cp2uni[(off << 8) + *src]; } else ch = cp2uni[*src]; - len += wine_decompose( ch, dummy, 4 ); + len += wine_decompose( 0, ch, dummy, 4 ); } return len; } @@ -234,7 +252,7 @@ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table, ch = cp2uni[(off << 8) + *src]; } else ch = cp2uni[*src]; - if (!(res = wine_decompose( ch, dst, len ))) break; + if (!(res = wine_decompose( 0, ch, dst, len ))) break; dst += res; len -= res; } diff --git a/sdk/tools/unicode/sortkey.c b/sdk/tools/unicode/sortkey.c index 634e910d4c3..8dc1e316ad9 100644 --- a/sdk/tools/unicode/sortkey.c +++ b/sdk/tools/unicode/sortkey.c @@ -19,7 +19,7 @@ */ #include "wine/unicode.h" -extern unsigned int wine_decompose( WCHAR ch, WCHAR *dst, unsigned int dstlen ); +extern unsigned int wine_decompose( int flags, WCHAR ch, WCHAR *dst, unsigned int dstlen ); extern const unsigned int collation_table[]; /* @@ -79,8 +79,8 @@ int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dst } if (!dstlen) /* compute length */ - /* 4 * '\1' + 1 * '\0' + key length */ - return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1; + /* 4 * '\1' + key length */ + return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4; if (dstlen < key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1) return 0; /* overflow */ @@ -153,11 +153,50 @@ int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dst return key_ptr[3] - dst; } -static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) +enum weight { + UNICODE_WEIGHT, + DIACRITIC_WEIGHT, + CASE_WEIGHT +}; + +static unsigned int get_weight(WCHAR ch, enum weight type) +{ + unsigned int ret; + + ret = collation_table[collation_table[ch >> 8] + (ch & 0xff)]; + if (ret == (unsigned int)-1) + return ch; + + switch(type) + { + case UNICODE_WEIGHT: + return ret >> 16; + case DIACRITIC_WEIGHT: + return (ret >> 8) & 0xff; + case CASE_WEIGHT: + default: + return (ret >> 4) & 0x0f; + } +} + +static void inc_str_pos(const WCHAR **str, int *len, int *dpos, int *dlen) +{ + (*dpos)++; + if (*dpos == *dlen) + { + *dpos = *dlen = 0; + (*str)++; + (*len)--; + } +} + +static inline int compare_weights(int flags, const WCHAR *str1, int len1, + const WCHAR *str2, int len2, enum weight type) +{ + int dpos1 = 0, dpos2 = 0, dlen1 = 0, dlen2 = 0; + WCHAR dstr1[4], dstr2[4]; unsigned int ce1, ce2; - int ret; /* 32-bit collation element table format: * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, @@ -165,20 +204,21 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1 */ while (len1 > 0 && len2 > 0) { + if (!dlen1) dlen1 = wine_decompose(0, *str1, dstr1, 4); + if (!dlen2) dlen2 = wine_decompose(0, *str2, dstr2, 4); + if (flags & NORM_IGNORESYMBOLS) { int skip = 0; /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) + if (get_char_typeW(dstr1[dpos1]) & (C1_PUNCT | C1_SPACE)) { - str1++; - len1--; + inc_str_pos(&str1, &len1, &dpos1, &dlen1); skip = 1; } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) + if (get_char_typeW(dstr2[dpos2]) & (C1_PUNCT | C1_SPACE)) { - str2++; - len2--; + inc_str_pos(&str2, &len2, &dpos2, &dlen2); skip = 1; } if (skip) continue; @@ -187,167 +227,56 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1 /* hyphen and apostrophe are treated differently depending on * whether SORT_STRINGSORT specified or not */ - if (!(flags & SORT_STRINGSORT)) + if (type == UNICODE_WEIGHT && !(flags & SORT_STRINGSORT)) { - if (*str1 == '-' || *str1 == '\'') + if (dstr1[dpos1] == '-' || dstr1[dpos1] == '\'') { - if (*str2 != '-' && *str2 != '\'') + if (dstr2[dpos2] != '-' && dstr2[dpos2] != '\'') { - str1++; - len1--; + inc_str_pos(&str1, &len1, &dpos1, &dlen1); continue; } } - else if (*str2 == '-' || *str2 == '\'') + else if (dstr2[dpos2] == '-' || dstr2[dpos2] == '\'') { - str2++; - len2--; + inc_str_pos(&str2, &len2, &dpos2, &dlen2); continue; } } - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = (ce1 >> 16) - (ce2 >> 16); - else - ret = *str1 - *str2; - - if (ret) return ret; - - str1++; - str2++; - len1--; - len2--; - } - while (len1 && !*str1) - { - str1++; - len1--; - } - while (len2 && !*str2) - { - str2++; - len2--; - } - return len1 - len2; -} - -static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) -{ - unsigned int ce1, ce2; - int ret; - - /* 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. - */ - while (len1 > 0 && len2 > 0) - { - if (flags & NORM_IGNORESYMBOLS) + ce1 = get_weight(dstr1[dpos1], type); + if (!ce1) { - int skip = 0; - /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) - { - str1++; - len1--; - skip = 1; - } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) - { - str2++; - len2--; - skip = 1; - } - if (skip) continue; + inc_str_pos(&str1, &len1, &dpos1, &dlen1); + continue; } - - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = ((ce1 >> 8) & 0xff) - ((ce2 >> 8) & 0xff); - else - ret = *str1 - *str2; - - if (ret) return ret; - - str1++; - str2++; - len1--; - len2--; - } - while (len1 && !*str1) - { - str1++; - len1--; - } - while (len2 && !*str2) - { - str2++; - len2--; - } - return len1 - len2; -} - -static inline int compare_case_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) -{ - unsigned int ce1, ce2; - int ret; - - /* 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. - */ - while (len1 > 0 && len2 > 0) - { - if (flags & NORM_IGNORESYMBOLS) + ce2 = get_weight(dstr2[dpos2], type); + if (!ce2) { - int skip = 0; - /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) - { - str1++; - len1--; - skip = 1; - } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) - { - str2++; - len2--; - skip = 1; - } - if (skip) continue; + inc_str_pos(&str2, &len2, &dpos2, &dlen2); + continue; } - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = ((ce1 >> 4) & 0x0f) - ((ce2 >> 4) & 0x0f); - else - ret = *str1 - *str2; - - if (ret) return ret; + if (ce1 - ce2) return ce1 - ce2; - str1++; - str2++; - len1--; - len2--; + inc_str_pos(&str1, &len1, &dpos1, &dlen1); + inc_str_pos(&str2, &len2, &dpos2, &dlen2); } - while (len1 && !*str1) + while (len1) { - str1++; - len1--; + if (!dlen1) dlen1 = wine_decompose(0, *str1, dstr1, 4); + + ce1 = get_weight(dstr1[dpos1], type); + if (ce1) break; + inc_str_pos(&str1, &len1, &dpos1, &dlen1); } - while (len2 && !*str2) + while (len2) { - str2++; - len2--; + if (!dlen2) dlen2 = wine_decompose(0, *str2, dstr2, 4); + + ce2 = get_weight(dstr2[dpos2], type); + if (ce2) break; + inc_str_pos(&str2, &len2, &dpos2, &dlen2); } return len1 - len2; } @@ -357,13 +286,13 @@ int wine_compare_string(int flags, const WCHAR *str1, int len1, { int ret; - ret = compare_unicode_weights(flags, str1, len1, str2, len2); + ret = compare_weights(flags, str1, len1, str2, len2, UNICODE_WEIGHT); if (!ret) { if (!(flags & NORM_IGNORENONSPACE)) - ret = compare_diacritic_weights(flags, str1, len1, str2, len2); + ret = compare_weights(flags, str1, len1, str2, len2, DIACRITIC_WEIGHT); if (!ret && !(flags & NORM_IGNORECASE)) - ret = compare_case_weights(flags, str1, len1, str2, len2); + ret = compare_weights(flags, str1, len1, str2, len2, CASE_WEIGHT); } return ret; } diff --git a/sdk/tools/unicode/string.c b/sdk/tools/unicode/string.c index 4eab49cd3bb..f439bb3e3ae 100644 --- a/sdk/tools/unicode/string.c +++ b/sdk/tools/unicode/string.c @@ -23,7 +23,6 @@ #include <limits.h> #include <stdio.h> -#define WINE_UNICODE_INLINE /* nothing */ #include "wine/unicode.h" #ifdef __REACTOS__ @@ -469,14 +468,19 @@ int vsnprintfW(WCHAR *str, size_t len, const WCHAR *format, va_list valist) /* FIXME: for unrecognised types, should ignore % when printing */ char *bufaiter = bufa; if (*iter == 'p') +#ifdef __REACTOS__ sprintf(bufaiter, "%p", va_arg(valist, void*)); +#else + sprintf(bufaiter, "%0*lX", 2 * (int)sizeof(void*), + (unsigned long)va_arg(valist, void *)); +#endif else { *fmta++ = *iter; *fmta = '\0'; if (*iter == 'a' || *iter == 'A' || *iter == 'e' || *iter == 'E' || - *iter == 'f' || *iter == 'F' || + *iter == 'f' || *iter == 'F' || *iter == 'g' || *iter == 'G') sprintf(bufaiter, fmtbufa, va_arg(valist, double)); else diff --git a/sdk/tools/unicode/wctype.c b/sdk/tools/unicode/wctype.c index 8d0a3ed94d5..661966c5a1f 100644 --- a/sdk/tools/unicode/wctype.c +++ b/sdk/tools/unicode/wctype.c @@ -1,7 +1,7 @@ /* Unicode ctype tables */ /* Automatically generated; DO NOT EDIT!! */ -#include "wine/unicode.h" +#include "windef.h" const unsigned short wine_wctype_table[17152] = { @@ -211,12 +211,12 @@ const unsigned short wine_wctype_table[17152] = 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0x0000, 0x1300, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, - 0x0000, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, - 0x0000, 0x1210, 0xb210, 0x0000, 0x0000, 0xb200, 0xb200, 0x5200, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1210, 0xb210, 0x0000, 0x0000, 0xb200, 0xb200, 0x5200, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, @@ -228,7 +228,7 @@ const unsigned short wine_wctype_table[17152] = 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, - 0x2300, 0x2300, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2300, 0x2300, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x2300, 0x2300, 0x2300, 0x2300, 0x2210, 0x2210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6220, 0x6220, 0x6220, 0x6220, 0x6220, 0x6220, 0xb200, 0xb200, @@ -294,7 +294,7 @@ const unsigned short wine_wctype_table[17152] = 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x2300, 0x2300, 0xb200, 0xb210, - 0xb210, 0xb210, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb210, 0xb210, 0x2300, 0x0000, 0x0000, 0xd200, 0x2200, 0x2200, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0xd200, 0xd200, @@ -321,7 +321,7 @@ const unsigned short wine_wctype_table[17152] = 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, + 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x6220, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, @@ -358,7 +358,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1300, 0x1300, 0x5200, 0x5200, 0x1200, 0x1200, 0x1200, 0x1200, - 0x1200, 0x1200, 0x1200, 0x5200, 0x1300, 0x1210, 0x0000, 0x0000, + 0x1200, 0x1200, 0x1200, 0x5200, 0x1300, 0x1210, 0xd200, 0x0000, 0x0000, 0xd200, 0xd200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -373,7 +373,7 @@ const unsigned short wine_wctype_table[17152] = 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0xd200, 0x0000, 0x0000, + 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0xd200, 0x1210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, @@ -423,7 +423,7 @@ const unsigned short wine_wctype_table[17152] = 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x5200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xd200, 0x1200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, + 0xd200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -437,9 +437,9 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1210, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1200, - 0x1300, 0xd200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300, + 0x1300, 0xd200, 0x1200, 0x1200, 0x1210, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -503,14 +503,14 @@ const unsigned short wine_wctype_table[17152] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x0000, 0x1300, - 0x1300, 0x0000, 0x1300, 0x0000, 0x0000, 0x1300, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300, - 0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, + 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300, 0x1300, + 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, + 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x0000, 0xd200, 0xd200, 0x1300, 0x0000, 0x0000, + 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1300, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, @@ -577,12 +577,12 @@ const unsigned short wine_wctype_table[17152] = 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0x1301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1301, 0x0000, 0x0000, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1210, 0x1300, 0x1300, 0x1300, 0x1300, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, + 0x1302, 0x1302, 0x1302, 0x1210, 0x1300, 0x1302, 0x1302, 0x1302, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -724,7 +724,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1210, 0x1210, 0x1300, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, 0x1210, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xa208, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -790,7 +790,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -921,20 +921,20 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1210, 0x1210, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, + 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, + 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, + 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, + 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, + 0x1301, 0x1301, 0x1301, 0x0000, 0x0000, 0x1301, 0x1301, 0x1301, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0x1210, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1200, 0x1200, 0xd200, 0x1300, 0x1300, 0x1200, - 0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0x1200, + 0xd200, 0xd200, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, @@ -1374,15 +1374,15 @@ const unsigned short wine_wctype_table[17152] = 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0x0000, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, - 0xb200, 0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xb200, 0xb200, 0xb200, 0xb200, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, + 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, @@ -1456,7 +1456,7 @@ const unsigned short wine_wctype_table[17152] = 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, - 0xb210, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -1548,7 +1548,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -1700,7 +1700,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -1788,10 +1788,10 @@ const unsigned short wine_wctype_table[17152] = 0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, - 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, + 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, 0x1301, 0x1302, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, + 0x0000, 0x0000, 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -1830,7 +1830,7 @@ const unsigned short wine_wctype_table[17152] = 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1210, 0x1210, 0x1210, 0x1300, 0x1210, 0x1300, 0x0000, 0x0000, + 0x1210, 0x1210, 0x1210, 0x1300, 0x1210, 0x1300, 0x1300, 0xd200, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, @@ -1854,7 +1854,7 @@ const unsigned short wine_wctype_table[17152] = 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, - 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, 0x1200, + 0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0x1200, 0x1200, 0x1200, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x0000, 0x1300, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, @@ -1907,7 +1907,7 @@ const unsigned short wine_wctype_table[17152] = 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1200, 0x1300, 0x1300, 0x1300, 0x1300, - 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, + 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
5 years
1
0
0
0
[reactos] 01/01: [REG] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3cfeed64b1af12c54efc5…
commit 3cfeed64b1af12c54efc5342d4bcbaf61b4ca185 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:58:26 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:58:26 2019 +0100 [REG] Sync with Wine Staging 4.18. CORE-16441 --- base/applications/cmdutils/reg/export.c | 20 +-- base/applications/cmdutils/reg/import.c | 42 +++--- base/applications/cmdutils/reg/lang/bg-BG.rc | 2 - base/applications/cmdutils/reg/lang/cs-CZ.rc | 2 - base/applications/cmdutils/reg/lang/da-DK.rc | 2 - base/applications/cmdutils/reg/lang/de-DE.rc | 2 - base/applications/cmdutils/reg/lang/en-US.rc | 2 - base/applications/cmdutils/reg/lang/es-ES.rc | 2 - base/applications/cmdutils/reg/lang/fr-FR.rc | 2 - base/applications/cmdutils/reg/lang/it-IT.rc | 2 - base/applications/cmdutils/reg/lang/ja-JP.rc | 2 - base/applications/cmdutils/reg/lang/ko-KR.rc | 2 - base/applications/cmdutils/reg/lang/lt-LT.rc | 2 - base/applications/cmdutils/reg/lang/nl-NL.rc | 2 - base/applications/cmdutils/reg/lang/no-NO.rc | 2 - base/applications/cmdutils/reg/lang/pl-PL.rc | 2 - base/applications/cmdutils/reg/lang/pt-PT.rc | 2 - base/applications/cmdutils/reg/lang/ro-RO.rc | 2 - base/applications/cmdutils/reg/lang/ru-RU.rc | 2 - base/applications/cmdutils/reg/lang/sl-SI.rc | 2 - base/applications/cmdutils/reg/lang/sq-AL.rc | 2 - base/applications/cmdutils/reg/lang/sv-SE.rc | 2 - base/applications/cmdutils/reg/lang/tr-TR.rc | 2 - base/applications/cmdutils/reg/lang/uk-UA.rc | 2 - base/applications/cmdutils/reg/lang/zh-CN.rc | 2 - base/applications/cmdutils/reg/lang/zh-TW.rc | 2 - base/applications/cmdutils/reg/reg.c | 214 ++++----------------------- base/applications/cmdutils/reg/resource.h | 2 - media/doc/README.WINE | 2 +- 29 files changed, 55 insertions(+), 273 deletions(-) diff --git a/base/applications/cmdutils/reg/export.c b/base/applications/cmdutils/reg/export.c index 8b08da12999..b5796d5fef3 100644 --- a/base/applications/cmdutils/reg/export.c +++ b/base/applications/cmdutils/reg/export.c @@ -17,9 +17,9 @@ */ #include <windows.h> +#include <stdio.h> #include <stdlib.h> -#include <wine/unicode.h> #include <wine/heap.h> #include "reg.h" @@ -92,7 +92,7 @@ static size_t export_value_name(HANDLE hFile, WCHAR *name, size_t len) { WCHAR *str = escape_string(name, len, &line_len); WCHAR *buf = heap_xalloc((line_len + 4) * sizeof(WCHAR)); - line_len = sprintfW(buf, quoted_fmt, str); + line_len = swprintf(buf, quoted_fmt, str); write_file(hFile, buf); heap_free(buf); heap_free(str); @@ -116,7 +116,7 @@ static void export_string_data(WCHAR **buf, WCHAR *data, size_t size) len = size / sizeof(WCHAR) - 1; str = escape_string(data, len, &line_len); *buf = heap_xalloc((line_len + 3) * sizeof(WCHAR)); - sprintfW(*buf, fmt, str); + swprintf(*buf, fmt, str); heap_free(str); } @@ -125,7 +125,7 @@ static void export_dword_data(WCHAR **buf, DWORD *data) static const WCHAR fmt[] = {'d','w','o','r','d',':','%','0','8','x',0}; *buf = heap_xalloc(15 * sizeof(WCHAR)); - sprintfW(*buf, fmt, *data); + swprintf(*buf, fmt, *data); } static size_t export_hex_data_type(HANDLE hFile, DWORD type) @@ -142,7 +142,7 @@ static size_t export_hex_data_type(HANDLE hFile, DWORD type) else { WCHAR *buf = heap_xalloc(15 * sizeof(WCHAR)); - line_len = sprintfW(buf, hexp_fmt, type); + line_len = swprintf(buf, hexp_fmt, type); write_file(hFile, buf); heap_free(buf); } @@ -168,7 +168,7 @@ static void export_hex_data(HANDLE hFile, WCHAR **buf, DWORD type, for (i = 0, pos = 0; i < size; i++) { - pos += sprintfW(*buf + pos, fmt, ((BYTE *)data)[i]); + pos += swprintf(*buf + pos, fmt, ((BYTE *)data)[i]); if (i == num_commas) break; (*buf)[pos++] = ','; (*buf)[pos] = 0; @@ -233,7 +233,7 @@ static void export_key_name(HANDLE hFile, WCHAR *name) WCHAR *buf; buf = heap_xalloc((lstrlenW(name) + 7) * sizeof(WCHAR)); - sprintfW(buf, fmt, name); + swprintf(buf, fmt, name); write_file(hFile, buf); heap_free(buf); } @@ -316,7 +316,7 @@ static void export_file_header(HANDLE hFile) { static const WCHAR header[] = { 0xfeff,'W','i','n','d','o','w','s',' ', 'R','e','g','i','s','t','r','y',' ','E','d','i','t','o','r',' ', - 'V','e','r','s','i','o','n',' ','5','.','0','0','\r','\n'}; + 'V','e','r','s','i','o','n',' ','5','.','0','0','\r','\n',0}; write_file(hFile, header); } @@ -361,7 +361,7 @@ static HANDLE get_file_handle(WCHAR *filename, BOOL overwrite_file) static BOOL is_overwrite_switch(const WCHAR *s) { - if (strlenW(s) > 2) + if (lstrlenW(s) > 2) return FALSE; if ((s[0] == '/' || s[0] == '-') && (s[1] == 'y' || s[1] == 'Y')) @@ -405,6 +405,6 @@ int reg_export(int argc, WCHAR *argv[]) error: output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argv[1])); + output_message(STRING_FUNC_HELP, _wcsupr(argv[1])); return 1; } diff --git a/base/applications/cmdutils/reg/import.c b/base/applications/cmdutils/reg/import.c index 779ea2863b0..f7f87939e23 100644 --- a/base/applications/cmdutils/reg/import.c +++ b/base/applications/cmdutils/reg/import.c @@ -21,7 +21,6 @@ #include <stdio.h> #include <stdlib.h> -#include <wine/unicode.h> #include <wine/debug.h> #include <wine/heap.h> @@ -162,7 +161,7 @@ static BOOL convert_hex_to_dword(WCHAR *str, DWORD *dw) if (!*str) goto error; p = str; - while (isxdigitW(*p)) + while (iswxdigit(*p)) { count++; p++; @@ -174,7 +173,7 @@ static BOOL convert_hex_to_dword(WCHAR *str, DWORD *dw) if (*p && *p != ';') goto error; *end = 0; - *dw = strtoulW(str, &end, 16); + *dw = wcstoul(str, &end, 16); return TRUE; error: @@ -207,7 +206,7 @@ static BOOL convert_hex_csv_to_hex(struct parser *parser, WCHAR **str) WCHAR *end; unsigned long wc; - wc = strtoulW(s, &end, 16); + wc = wcstoul(s, &end, 16); if (wc > 0xff) return FALSE; if (s == end && wc == 0) @@ -269,7 +268,7 @@ static BOOL parse_data_type(struct parser *parser, WCHAR **line) for (ptr = data_types; ptr->tag; ptr++) { - if (strncmpW(ptr->tag, *line, ptr->len)) + if (wcsncmp(ptr->tag, *line, ptr->len)) continue; parser->parse_type = ptr->parse_type; @@ -281,7 +280,7 @@ static BOOL parse_data_type(struct parser *parser, WCHAR **line) WCHAR *end; DWORD val; - if (!**line || tolowerW((*line)[1]) == 'x') + if (!**line || towlower((*line)[1]) == 'x') return FALSE; /* "hex(xx):" is special */ @@ -354,7 +353,7 @@ static HKEY parse_key_name(WCHAR *key_name, WCHAR **key_path) { if (!key_name) return 0; - *key_path = strchrW(key_name, '\\'); + *key_path = wcschr(key_name, '\\'); if (*key_path) (*key_path)++; return path_get_rootkey(key_name); @@ -458,13 +457,13 @@ static enum reg_versions parse_file_header(const WCHAR *s) while (*s == ' ' || *s == '\t') s++; - if (!strcmpW(s, header_31)) + if (!lstrcmpW(s, header_31)) return REG_VERSION_31; - if (!strcmpW(s, header_40)) + if (!lstrcmpW(s, header_40)) return REG_VERSION_40; - if (!strcmpW(s, header_50)) + if (!lstrcmpW(s, header_50)) return REG_VERSION_50; /* The Windows version accepts registry file headers beginning with "REGEDIT" and ending @@ -472,7 +471,7 @@ static enum reg_versions parse_file_header(const WCHAR *s) * "REGEDIT 4", "REGEDIT9" and "REGEDIT4FOO" are all treated as valid file headers. * In all such cases, however, the contents of the registry file are not imported. */ - if (!strncmpW(s, header_31, 7)) /* "REGEDIT" without NUL */ + if (!wcsncmp(s, header_31, 7)) /* "REGEDIT" without NUL */ return REG_VERSION_FUZZY; return REG_VERSION_INVALID; @@ -524,11 +523,11 @@ static WCHAR *parse_win31_line_state(struct parser *parser, WCHAR *pos) if (!(line = get_line(parser->file))) return NULL; - if (strncmpW(line, hkcr, ARRAY_SIZE(hkcr))) + if (wcsncmp(line, hkcr, ARRAY_SIZE(hkcr))) return line; /* get key name */ - while (line[key_end] && !isspaceW(line[key_end])) key_end++; + while (line[key_end] && !iswspace(line[key_end])) key_end++; value = line + key_end; while (*value == ' ' || *value == '\t') value++; @@ -590,7 +589,7 @@ static WCHAR *key_name_state(struct parser *parser, WCHAR *pos) { WCHAR *p = pos, *key_end; - if (*p == ' ' || *p == '\t' || !(key_end = strrchrW(p, ']'))) + if (*p == ' ' || *p == '\t' || !(key_end = wcsrchr(p, ']'))) goto done; *key_end = 0; @@ -645,11 +644,8 @@ static WCHAR *quoted_value_name_state(struct parser *parser, WCHAR *pos) { WCHAR *val_name = pos, *p; - if (parser->value_name) - { - heap_free(parser->value_name); - parser->value_name = NULL; - } + heap_free(parser->value_name); + parser->value_name = NULL; if (!unescape_string(val_name, &p)) goto invalid; @@ -678,7 +674,7 @@ static WCHAR *data_start_state(struct parser *parser, WCHAR *pos) while (*p == ' ' || *p == '\t') p++; /* trim trailing whitespace */ - len = strlenW(p); + len = lstrlenW(p); while (len > 0 && (p[len - 1] == ' ' || p[len - 1] == '\t')) len--; p[len] = 0; @@ -843,7 +839,7 @@ static WCHAR *hex_multiline_state(struct parser *parser, WCHAR *pos) while (*line == ' ' || *line == '\t') line++; if (!*line || *line == ';') return line; - if (!isxdigitW(*line)) goto invalid; + if (!iswxdigit(*line)) goto invalid; set_state(parser, HEX_DATA); return line; @@ -959,11 +955,11 @@ static WCHAR *get_lineW(FILE *fp) while (next) { static const WCHAR line_endings[] = {'\r','\n',0}; - WCHAR *p = strpbrkW(line, line_endings); + WCHAR *p = wcspbrk(line, line_endings); if (!p) { size_t len, count; - len = strlenW(next); + len = lstrlenW(next); memmove(buf, next, (len + 1) * sizeof(WCHAR)); if (size - len < 3) { diff --git a/base/applications/cmdutils/reg/lang/bg-BG.rc b/base/applications/cmdutils/reg/lang/bg-BG.rc index 0ea098c3a44..7f5bd99572d 100644 --- a/base/applications/cmdutils/reg/lang/bg-BG.rc +++ b/base/applications/cmdutils/reg/lang/bg-BG.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/cs-CZ.rc b/base/applications/cmdutils/reg/lang/cs-CZ.rc index e4413cbce02..c50105f449c 100644 --- a/base/applications/cmdutils/reg/lang/cs-CZ.rc +++ b/base/applications/cmdutils/reg/lang/cs-CZ.rc @@ -45,6 +45,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/da-DK.rc b/base/applications/cmdutils/reg/lang/da-DK.rc index a7bf9e9361a..bb882d6eefd 100644 --- a/base/applications/cmdutils/reg/lang/da-DK.rc +++ b/base/applications/cmdutils/reg/lang/da-DK.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/de-DE.rc b/base/applications/cmdutils/reg/lang/de-DE.rc index dba7ed54791..adeb062f8d1 100644 --- a/base/applications/cmdutils/reg/lang/de-DE.rc +++ b/base/applications/cmdutils/reg/lang/de-DE.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/en-US.rc b/base/applications/cmdutils/reg/lang/en-US.rc index 65c37f1a803..b2cf9875cc6 100644 --- a/base/applications/cmdutils/reg/lang/en-US.rc +++ b/base/applications/cmdutils/reg/lang/en-US.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/es-ES.rc b/base/applications/cmdutils/reg/lang/es-ES.rc index 5e6d9ed4cd5..a087d8cd4e5 100644 --- a/base/applications/cmdutils/reg/lang/es-ES.rc +++ b/base/applications/cmdutils/reg/lang/es-ES.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/fr-FR.rc b/base/applications/cmdutils/reg/lang/fr-FR.rc index 0419d350e80..e288ad9928f 100644 --- a/base/applications/cmdutils/reg/lang/fr-FR.rc +++ b/base/applications/cmdutils/reg/lang/fr-FR.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/it-IT.rc b/base/applications/cmdutils/reg/lang/it-IT.rc index 84417873ed1..082a1875e6f 100644 --- a/base/applications/cmdutils/reg/lang/it-IT.rc +++ b/base/applications/cmdutils/reg/lang/it-IT.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/ja-JP.rc b/base/applications/cmdutils/reg/lang/ja-JP.rc index cbaeb46f7fd..6c3b6b7abe4 100644 --- a/base/applications/cmdutils/reg/lang/ja-JP.rc +++ b/base/applications/cmdutils/reg/lang/ja-JP.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/ko-KR.rc b/base/applications/cmdutils/reg/lang/ko-KR.rc index 1ba6c381f31..513d0542408 100644 --- a/base/applications/cmdutils/reg/lang/ko-KR.rc +++ b/base/applications/cmdutils/reg/lang/ko-KR.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/lt-LT.rc b/base/applications/cmdutils/reg/lang/lt-LT.rc index 48e96d23c97..556a78dde1f 100644 --- a/base/applications/cmdutils/reg/lang/lt-LT.rc +++ b/base/applications/cmdutils/reg/lang/lt-LT.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/nl-NL.rc b/base/applications/cmdutils/reg/lang/nl-NL.rc index 1cf44949866..f4326d684b4 100644 --- a/base/applications/cmdutils/reg/lang/nl-NL.rc +++ b/base/applications/cmdutils/reg/lang/nl-NL.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/no-NO.rc b/base/applications/cmdutils/reg/lang/no-NO.rc index 2046fad5278..ed7e9499154 100644 --- a/base/applications/cmdutils/reg/lang/no-NO.rc +++ b/base/applications/cmdutils/reg/lang/no-NO.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/pl-PL.rc b/base/applications/cmdutils/reg/lang/pl-PL.rc index 3c87ef40021..aca63678954 100644 --- a/base/applications/cmdutils/reg/lang/pl-PL.rc +++ b/base/applications/cmdutils/reg/lang/pl-PL.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT nazwa_klucza plik.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Nieprawidłowy klucz systemowy [%1]\n" STRING_OVERWRITE_FILE, "Plik '%1' już istnieje. Czy chcesz go zastąpić?" - STRING_SAVE_USAGE, "REG SAVE nazwa_klucza nazwa_pliku [/y]" - STRING_RESTORE_USAGE, "REG RESTORE nazwa_klucza nazwa_pliku" } diff --git a/base/applications/cmdutils/reg/lang/pt-PT.rc b/base/applications/cmdutils/reg/lang/pt-PT.rc index 58e8752324e..bbb3d21b2f8 100644 --- a/base/applications/cmdutils/reg/lang/pt-PT.rc +++ b/base/applications/cmdutils/reg/lang/pt-PT.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/ro-RO.rc b/base/applications/cmdutils/reg/lang/ro-RO.rc index 3ee1f903895..d9e409fb1f1 100644 --- a/base/applications/cmdutils/reg/lang/ro-RO.rc +++ b/base/applications/cmdutils/reg/lang/ro-RO.rc @@ -46,6 +46,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT nume_cheie fișier.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Cheia de sistem [%1] nu este una validă.\n" STRING_OVERWRITE_FILE, "Fișierul «%1» deja există. Doriți suprascrierea lui?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/ru-RU.rc b/base/applications/cmdutils/reg/lang/ru-RU.rc index 757926b9b68..6b797135607 100644 --- a/base/applications/cmdutils/reg/lang/ru-RU.rc +++ b/base/applications/cmdutils/reg/lang/ru-RU.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/sl-SI.rc b/base/applications/cmdutils/reg/lang/sl-SI.rc index d0f4b37e82c..7b8192e026a 100644 --- a/base/applications/cmdutils/reg/lang/sl-SI.rc +++ b/base/applications/cmdutils/reg/lang/sl-SI.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/sq-AL.rc b/base/applications/cmdutils/reg/lang/sq-AL.rc index a94677b8c6c..0e11b22f121 100644 --- a/base/applications/cmdutils/reg/lang/sq-AL.rc +++ b/base/applications/cmdutils/reg/lang/sq-AL.rc @@ -44,6 +44,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/sv-SE.rc b/base/applications/cmdutils/reg/lang/sv-SE.rc index c015bd9d6f9..fe61d5c62e0 100644 --- a/base/applications/cmdutils/reg/lang/sv-SE.rc +++ b/base/applications/cmdutils/reg/lang/sv-SE.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/tr-TR.rc b/base/applications/cmdutils/reg/lang/tr-TR.rc index 47abfc54bf8..6fdcb253830 100644 --- a/base/applications/cmdutils/reg/lang/tr-TR.rc +++ b/base/applications/cmdutils/reg/lang/tr-TR.rc @@ -42,6 +42,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/uk-UA.rc b/base/applications/cmdutils/reg/lang/uk-UA.rc index f2fff4f5e67..0dae3894dce 100644 --- a/base/applications/cmdutils/reg/lang/uk-UA.rc +++ b/base/applications/cmdutils/reg/lang/uk-UA.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/zh-CN.rc b/base/applications/cmdutils/reg/lang/zh-CN.rc index 08f92516977..aeaea14a55b 100644 --- a/base/applications/cmdutils/reg/lang/zh-CN.rc +++ b/base/applications/cmdutils/reg/lang/zh-CN.rc @@ -40,6 +40,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: 无效的系统键 [%1]\n" STRING_OVERWRITE_FILE, "文件 '%1' 已经存在。您是否要覆盖它?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/lang/zh-TW.rc b/base/applications/cmdutils/reg/lang/zh-TW.rc index 7771b9ea401..d55fa7e6093 100644 --- a/base/applications/cmdutils/reg/lang/zh-TW.rc +++ b/base/applications/cmdutils/reg/lang/zh-TW.rc @@ -42,6 +42,4 @@ STRINGTABLE STRING_EXPORT_USAGE, "REG EXPORT key_name file.reg [/y]\n" STRING_INVALID_SYSTEM_KEY, "reg: Invalid system key [%1]\n" STRING_OVERWRITE_FILE, "The file '%1' already exists. Do you want to overwrite it?" - STRING_SAVE_USAGE, "REG SAVE key_name file_name [/y]" - STRING_RESTORE_USAGE, "REG RESTORE key_name file_name" } diff --git a/base/applications/cmdutils/reg/reg.c b/base/applications/cmdutils/reg/reg.c index 5e65aee269b..21a08615531 100644 --- a/base/applications/cmdutils/reg/reg.c +++ b/base/applications/cmdutils/reg/reg.c @@ -18,8 +18,8 @@ #include <windows.h> #include <errno.h> +#include <stdio.h> #include <stdlib.h> -#include <wine/unicode.h> #include <wine/debug.h> #include <wine/heap.h> #include "reg.h" @@ -144,23 +144,6 @@ static void output_formatstring(const WCHAR *fmt, __ms_va_list va_args) LocalFree(str); } -static void output_error(LSTATUS status) -{ - WCHAR* str; - DWORD len; - - SetLastError(NO_ERROR); - len = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, status, 0, (WCHAR*)&str, 0, NULL); - if (len == 0 && GetLastError() != NO_ERROR) - { - WINE_FIXME("Could not format error code: le=%u, error=%u", GetLastError(), status); - return; - } - - output_writeconsole(str, len); - LocalFree(str); -} - void WINAPIV output_message(unsigned int id, ...) { WCHAR fmt[1024]; @@ -208,7 +191,7 @@ BOOL ask_confirm(unsigned int msgid, WCHAR *reg_info) output_message(msgid, str); output_message(STRING_YESNO); ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), answer, ARRAY_SIZE(answer), &count, NULL); - answer[0] = toupperW(answer[0]); + answer[0] = towupper(answer[0]); if (answer[0] == Ybuffer[0]) return TRUE; if (answer[0] == Nbuffer[0]) @@ -218,9 +201,9 @@ BOOL ask_confirm(unsigned int msgid, WCHAR *reg_info) static inline BOOL path_rootname_cmp(const WCHAR *input_path, const WCHAR *rootkey_name) { - DWORD length = strlenW(rootkey_name); + DWORD length = lstrlenW(rootkey_name); - return (!strncmpiW(input_path, rootkey_name, length) && + return (!_wcsnicmp(input_path, rootkey_name, length) && (input_path[length] == 0 || input_path[length] == '\\')); } @@ -247,7 +230,7 @@ static DWORD wchar_get_type(const WCHAR *type_name) for (i = 0; i < ARRAY_SIZE(type_rels); i++) { - if (!strcmpiW(type_rels[i].name, type_name)) + if (!wcsicmp(type_rels[i].name, type_name)) return type_rels[i].type; } @@ -292,7 +275,7 @@ static LPBYTE get_regdata(const WCHAR *data, DWORD reg_type, WCHAR separator, DW { LPWSTR rest; unsigned long val; - val = wcstoul(data, &rest, (tolowerW(data[1]) == 'x') ? 16 : 10); + val = wcstoul(data, &rest, (towlower(data[1]) == 'x') ? 16 : 10); if (*rest || data[0] == '-' || (val == ~0u && errno == ERANGE)) { output_message(STRING_MISSING_INTEGER); break; @@ -333,7 +316,7 @@ static LPBYTE get_regdata(const WCHAR *data, DWORD reg_type, WCHAR separator, DW } case REG_MULTI_SZ: { - int i, destindex, len = strlenW(data); + int i, destindex, len = lstrlenW(data); WCHAR *buffer = heap_xalloc((len + 2) * sizeof(WCHAR)); for (i = 0, destindex = 0; i < len; i++, destindex++) @@ -370,7 +353,7 @@ static LPBYTE get_regdata(const WCHAR *data, DWORD reg_type, WCHAR separator, DW static BOOL sane_path(const WCHAR *key) { - unsigned int i = strlenW(key); + unsigned int i = lstrlenW(key); if (i < 3 || (key[i - 1] == '\\' && key[i - 2] == '\\')) { @@ -545,7 +528,7 @@ static WCHAR *reg_data_to_wchar(DWORD type, const BYTE *src, DWORD size_bytes) case REG_SZ: case REG_EXPAND_SZ: buffer = heap_xalloc(size_bytes); - strcpyW(buffer, (WCHAR *)src); + lstrcpyW(buffer, (WCHAR *)src); break; case REG_NONE: case REG_BINARY: @@ -556,7 +539,7 @@ static WCHAR *reg_data_to_wchar(DWORD type, const BYTE *src, DWORD size_bytes) buffer = heap_xalloc((size_bytes * 2 + 1) * sizeof(WCHAR)); ptr = buffer; for (i = 0; i < size_bytes; i++) - ptr += sprintfW(ptr, fmt, src[i]); + ptr += swprintf(ptr, fmt, src[i]); break; } case REG_DWORD: @@ -567,7 +550,7 @@ static WCHAR *reg_data_to_wchar(DWORD type, const BYTE *src, DWORD size_bytes) static const WCHAR fmt[] = {'0','x','%','x',0}; buffer = heap_xalloc((zero_x_dword + 1) * sizeof(WCHAR)); - sprintfW(buffer, fmt, *(DWORD *)src); + swprintf(buffer, fmt, *(DWORD *)src); break; } case REG_MULTI_SZ: @@ -652,7 +635,7 @@ WCHAR *build_subkey_path(WCHAR *path, DWORD path_len, WCHAR *subkey_name, DWORD static const WCHAR fmt[] = {'%','s','\\','%','s',0}; subkey_path = heap_xalloc((path_len + subkey_len + 2) * sizeof(WCHAR)); - sprintfW(subkey_path, fmt, path, subkey_name); + swprintf(subkey_path, fmt, path, subkey_name); return subkey_path; } @@ -711,7 +694,7 @@ static int query_value(HKEY key, WCHAR *value_name, WCHAR *path, BOOL recurse) subkey_name = heap_xalloc(MAX_SUBKEY_LEN * sizeof(WCHAR)); - path_len = strlenW(path); + path_len = lstrlenW(path); i = 0; for (;;) @@ -789,7 +772,7 @@ static int query_all(HKEY key, WCHAR *path, BOOL recurse) subkey_name = heap_xalloc(MAX_SUBKEY_LEN * sizeof(WCHAR)); - path_len = strlenW(path); + path_len = lstrlenW(path); i = 0; for (;;) @@ -862,18 +845,18 @@ static WCHAR *get_long_key(HKEY root, WCHAR *path) break; } - len = strlenW(root_rels[i].long_name); + len = lstrlenW(root_rels[i].long_name); if (!path) { long_key = heap_xalloc((len + 1) * sizeof(WCHAR)); - strcpyW(long_key, root_rels[i].long_name); + lstrcpyW(long_key, root_rels[i].long_name); return long_key; } - len += strlenW(path) + 1; /* add one for the backslash */ + len += lstrlenW(path) + 1; /* add one for the backslash */ long_key = heap_xalloc((len + 1) * sizeof(WCHAR)); - sprintfW(long_key, fmt, root_rels[i].long_name, path); + swprintf(long_key, fmt, root_rels[i].long_name, path); return long_key; } @@ -882,7 +865,7 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path, WCHAR **long if (!sane_path(key)) return FALSE; - *path = strchrW(key, '\\'); + *path = wcschr(key, '\\'); if (*path) (*path)++; *root = path_get_rootkey(key); @@ -900,150 +883,15 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path, WCHAR **long static BOOL is_switch(const WCHAR *s, const WCHAR c) { - if (strlenW(s) > 2) + if (lstrlenW(s) > 2) return FALSE; - if ((s[0] == '/' || s[0] == '-') && (s[1] == c || s[1] == toupperW(c))) + if ((s[0] == '/' || s[0] == '-') && (s[1] == c || s[1] == towupper(c))) return TRUE; return FALSE; } -static BOOL set_privilege(LPCWSTR privilegeName, BOOL enabled) -{ - HANDLE hToken = INVALID_HANDLE_VALUE; - TOKEN_PRIVILEGES tp; - DWORD error = ERROR_SUCCESS; - - if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) - { - tp.PrivilegeCount = 1; - tp.Privileges[0].Attributes = (enabled ? SE_PRIVILEGE_ENABLED : 0); - - if (LookupPrivilegeValueW(NULL, privilegeName, &tp.Privileges[0].Luid)) - { - if (AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL)) - { - if (GetLastError() == ERROR_NOT_ALL_ASSIGNED) - { - error = ERROR_NOT_ALL_ASSIGNED; - goto fail; - } - } - else - { - error = GetLastError(); - goto fail; - } - } - else - { - error = GetLastError(); - goto fail; - } - } - else - { - error = GetLastError(); - goto fail; - } - - CloseHandle(hToken); - return TRUE; - -fail: - // Don't allow a success error to be printed, as that would confuse the user. - // "Access denied" seems like a reasonable default. - if (error == ERROR_SUCCESS) error = ERROR_ACCESS_DENIED; - if (hToken != INVALID_HANDLE_VALUE) CloseHandle(hToken); - - output_error(error); - return FALSE; -} - -static int reg_save(int argc, WCHAR* argv[]) { - HKEY root, hkey; - LSTATUS status; - WCHAR* path, *long_key; - - if (argc < 4 || argc > 5) goto error; - - if (!parse_registry_key(argv[2], &root, &path, &long_key)) - return 1; - - if (GetFileAttributes(argv[3]) != INVALID_FILE_ATTRIBUTES) - { - if (argc == 5 && !strcmpiW(argv[4], L"/y")) - { - DeleteFile(argv[3]); - } - else - { - if (ask_confirm(STRING_OVERWRITE_FILE, argv[3])) - DeleteFile(argv[3]); - } - } - - if (RegOpenKeyExW(root, path, 0, KEY_READ, &hkey)) - { - output_message(STRING_INVALID_KEY); - return 1; - } - - if (!set_privilege(SE_BACKUP_NAME, TRUE)) return 1; - - status = RegSaveKeyExW(hkey, argv[3], NULL, REG_LATEST_FORMAT); - RegCloseKey(hkey); - - if (status != ERROR_SUCCESS) { - output_error(status); - return 1; - } - - return 0; - -error: - output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argv[1])); - return 1; -} - -static int reg_restore(int argc, WCHAR* argv[]) -{ - HKEY root, hkey; - LSTATUS status; - WCHAR* path, * long_key; - - if (argc != 4) goto error; - - if (!parse_registry_key(argv[2], &root, &path, &long_key)) - return 1; - - if (RegOpenKeyExW(root, path, 0, KEY_READ, &hkey)) - { - output_message(STRING_INVALID_KEY); - return 1; - } - - if (!set_privilege(SE_BACKUP_NAME, TRUE)) return 1; - if (!set_privilege(SE_RESTORE_NAME, TRUE)) return 1; - - status = RegRestoreKeyW(hkey, argv[3], 0); - RegCloseKey(hkey); - - if (status != ERROR_SUCCESS) { - output_error(status); - return 1; - } - - return 0; - -error: - output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argv[1])); - return 1; -} - static BOOL is_help_switch(const WCHAR *s) { if (is_switch(s, '?') || is_switch(s, 'h')) @@ -1058,8 +906,6 @@ enum operations { REG_IMPORT, REG_EXPORT, REG_QUERY, - REG_SAVE, - REG_RESTORE, REG_INVALID }; @@ -1072,8 +918,6 @@ static enum operations get_operation(const WCHAR *str, int *op_help) static const WCHAR import[] = {'i','m','p','o','r','t',0}; static const WCHAR export[] = {'e','x','p','o','r','t',0}; static const WCHAR query[] = {'q','u','e','r','y',0}; - static const WCHAR save[] = L"save"; - static const WCHAR restore[] = L"restore"; static const struct op_info op_array[] = { @@ -1082,8 +926,6 @@ static enum operations get_operation(const WCHAR *str, int *op_help) { import, REG_IMPORT, STRING_IMPORT_USAGE }, { export, REG_EXPORT, STRING_EXPORT_USAGE }, { query, REG_QUERY, STRING_QUERY_USAGE }, - { save, REG_SAVE, STRING_SAVE_USAGE }, - { restore, REG_RESTORE, STRING_RESTORE_USAGE }, { NULL, -1, 0 } }; @@ -1101,7 +943,7 @@ static enum operations get_operation(const WCHAR *str, int *op_help) return REG_INVALID; } -int wmain(int argc, WCHAR *argvW[]) +int __cdecl wmain(int argc, WCHAR *argvW[]) { int i, op, op_help, ret; BOOL show_op_help = FALSE; @@ -1139,7 +981,7 @@ int wmain(int argc, WCHAR *argvW[]) if (argc == 2 || ((show_op_help || op == REG_IMPORT) && argc > 3)) { output_message(STRING_INVALID_SYNTAX); - output_message(STRING_FUNC_HELP, struprW(argvW[1])); + output_message(STRING_FUNC_HELP, _wcsupr(argvW[1])); return 1; } else if (show_op_help) @@ -1154,12 +996,6 @@ int wmain(int argc, WCHAR *argvW[]) if (op == REG_EXPORT) return reg_export(argc, argvW); - if (op == REG_SAVE) - return reg_save(argc, argvW); - - if (op == REG_RESTORE) - return reg_restore(argc, argvW); - if (!parse_registry_key(argvW[2], &root, &path, &key_name)) return 1; @@ -1185,7 +1021,7 @@ int wmain(int argc, WCHAR *argvW[]) return 1; } - switch(tolowerW(argvW[i][1])) + switch(towlower(argvW[i][1])) { case 'v': if (value_name || !(value_name = argvW[++i])) @@ -1216,7 +1052,7 @@ int wmain(int argc, WCHAR *argvW[]) } ptr = argvW[++i]; - if (!ptr || strlenW(ptr) != 1) + if (!ptr || lstrlenW(ptr) != 1) { output_message(STRING_INVALID_CMDLINE); return 1; diff --git a/base/applications/cmdutils/reg/resource.h b/base/applications/cmdutils/reg/resource.h index 06848ca4eca..3658adc1556 100644 --- a/base/applications/cmdutils/reg/resource.h +++ b/base/applications/cmdutils/reg/resource.h @@ -61,5 +61,3 @@ #define STRING_EXPORT_USAGE 136 #define STRING_INVALID_SYSTEM_KEY 137 #define STRING_OVERWRITE_FILE 138 -#define STRING_SAVE_USAGE 139 -#define STRING_RESTORE_USAGE 140 diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 82a641bd24d..acaca77a32d 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -229,7 +229,7 @@ win32ss/printing/monitors/localmon/ui/ # Synced to WineStaging-4.18 (known ther ReactOS shares the following programs with Winehq. base/applications/cmdutils/cscript # Synced to WineStaging-4.18 -base/applications/cmdutils/reg # Synced to WineStaging-3.17 +base/applications/cmdutils/reg # Synced to WineStaging-4.18 base/applications/cmdutils/schtasks # Synced to WineStaging-3.3 base/applications/cmdutils/taskkill # Synced to WineStaging-3.17 base/applications/cmdutils/wmic # Synced to WineStaging-4.0
5 years
1
0
0
0
[reactos] 01/01: [CSCRIPT][WSCRIPT] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e87b3957e489a3ef8fbda…
commit e87b3957e489a3ef8fbda43887a84af5e50ca44c Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:58:01 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:58:01 2019 +0100 [CSCRIPT][WSCRIPT] Sync with Wine Staging 4.18. CORE-16441 --- base/applications/cmdutils/wscript/host.c | 7 +++---- base/applications/cmdutils/wscript/main.c | 13 ++++++------- media/doc/README.WINE | 4 ++-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/base/applications/cmdutils/wscript/host.c b/base/applications/cmdutils/wscript/host.c index c6bc31c8bdb..a61851e22bc 100644 --- a/base/applications/cmdutils/wscript/host.c +++ b/base/applications/cmdutils/wscript/host.c @@ -29,7 +29,6 @@ #include <wine/debug.h> #include <wine/heap.h> -#include <wine/unicode.h> WINE_DEFAULT_DEBUG_CHANNEL(wscript); @@ -80,7 +79,7 @@ static void print_string(const WCHAR *string) return; } - len = strlenW(string); + len = lstrlenW(string); ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), string, len, &count, NULL); if(ret) { static const WCHAR crnlW[] = {'\r','\n'}; @@ -200,7 +199,7 @@ static HRESULT WINAPI Host_get_Path(IHost *iface, BSTR *out_Path) if(GetModuleFileNameW(NULL, path, ARRAY_SIZE(path)) == 0) return E_FAIL; - pos = strrchrW(path, '\\'); + pos = wcsrchr(path, '\\'); howMany = pos - path; if(!(*out_Path = SysAllocStringLen(path, howMany))) return E_OUTOFMEMORY; @@ -237,7 +236,7 @@ static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName) WINE_TRACE("(%p)\n", out_ScriptName); - scriptName = strrchrW(scriptFullName, '\\'); + scriptName = wcsrchr(scriptFullName, '\\'); ++scriptName; if(!(*out_ScriptName = SysAllocString(scriptName))) return E_OUTOFMEMORY; diff --git a/base/applications/cmdutils/wscript/main.c b/base/applications/cmdutils/wscript/main.c index e3ffe35ca34..030243984df 100644 --- a/base/applications/cmdutils/wscript/main.c +++ b/base/applications/cmdutils/wscript/main.c @@ -34,7 +34,6 @@ #include "wscript.h" #include <wine/debug.h> -#include <wine/unicode.h> #ifdef _WIN64 @@ -90,7 +89,7 @@ static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, { WINE_TRACE("(%s %x %p %p)\n", wine_dbgstr_w(pstrName), dwReturnMask, ppunkItem, ppti); - if(strcmpW(pstrName, wshW) && strcmpW(pstrName, wscriptW)) + if(lstrcmpW(pstrName, wshW) && lstrcmpW(pstrName, wscriptW)) return E_FAIL; if(dwReturnMask & SCRIPTINFO_ITYPEINFO) { @@ -264,7 +263,7 @@ static BOOL get_engine_clsid(const WCHAR *ext, CLSID *clsid) WINE_TRACE("fileid is %s\n", wine_dbgstr_w(fileid)); - strcatW(fileid, script_engineW); + lstrcatW(fileid, script_engineW); res = RegOpenKeyW(HKEY_CLASSES_ROOT, fileid, &hkey); if(res != ERROR_SUCCESS) return FALSE; @@ -403,11 +402,11 @@ static BOOL set_host_properties(const WCHAR *prop) else ++prop; - if(strcmpiW(prop, iactive) == 0) + if(wcsicmp(prop, iactive) == 0) wshInteractive = VARIANT_TRUE; - else if(strcmpiW(prop, batch) == 0) + else if(wcsicmp(prop, batch) == 0) wshInteractive = VARIANT_FALSE; - else if(strcmpiW(prop, nologoW) == 0) + else if(wcsicmp(prop, nologoW) == 0) WINE_FIXME("ignored %s switch\n", debugstr_w(nologoW)); else { @@ -453,7 +452,7 @@ int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cm if(!res || res > ARRAY_SIZE(scriptFullName)) return 1; - ext = strrchrW(filepart, '.'); + ext = wcsrchr(filepart, '.'); if(!ext || !get_engine_clsid(ext, &clsid)) { WINE_FIXME("Could not find engine for %s\n", wine_dbgstr_w(ext)); return 1; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index f49e47cdf73..82a641bd24d 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -228,12 +228,12 @@ win32ss/printing/monitors/localmon/ui/ # Synced to WineStaging-4.18 (known ther ReactOS shares the following programs with Winehq. -base/applications/cmdutils/cscript # Synced to WineStaging-3.17 +base/applications/cmdutils/cscript # Synced to WineStaging-4.18 base/applications/cmdutils/reg # Synced to WineStaging-3.17 base/applications/cmdutils/schtasks # Synced to WineStaging-3.3 base/applications/cmdutils/taskkill # Synced to WineStaging-3.17 base/applications/cmdutils/wmic # Synced to WineStaging-4.0 -base/applications/cmdutils/wscript # Synced to WineStaging-3.17 +base/applications/cmdutils/wscript # Synced to WineStaging-4.18 base/applications/cmdutils/xcopy # Synced to WineStaging-3.17 base/applications/games/winmine # Synced to WineStaging-2.16 with our own resources. base/applications/extrac32 # Synced to WineStaging-4.0
5 years
1
0
0
0
[reactos] 01/01: [LOCALUI] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e32507b52592e82f87f97…
commit e32507b52592e82f87f97d58148c6d84c328ea45 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:57:33 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:57:33 2019 +0100 [LOCALUI] Sync with Wine Staging 4.18. CORE-16441 --- media/doc/README.WINE | 2 +- win32ss/printing/monitors/localmon/ui/localui.c | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 277510e938b..f49e47cdf73 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -224,7 +224,7 @@ dll/win32/xolehlp # Synced to WineStaging-3.21 dll/cpl/inetcpl # Synced to WineStaging-4.18 -win32ss/printing/monitors/localmon/ui/ # Synced to WineStaging-3.3 (known there as /dll/win32/localui) +win32ss/printing/monitors/localmon/ui/ # Synced to WineStaging-4.18 (known there as /dll/win32/localui) ReactOS shares the following programs with Winehq. diff --git a/win32ss/printing/monitors/localmon/ui/localui.c b/win32ss/printing/monitors/localmon/ui/localui.c index 9fb975cd851..f548f55c2e8 100644 --- a/win32ss/printing/monitors/localmon/ui/localui.c +++ b/win32ss/printing/monitors/localmon/ui/localui.c @@ -19,6 +19,9 @@ */ #include <stdarg.h> +#ifdef __REACTOS__ +#include <wchar.h> +#endif #include "windef.h" #include "winbase.h" @@ -30,7 +33,6 @@ #include "ddk/winsplp.h" #include "wine/debug.h" -#include "wine/unicode.h" #include "localui.h" WINE_DEFAULT_DEBUG_CHANNEL(localui); @@ -187,7 +189,7 @@ static void dlg_port_already_exists(HWND hWnd, LPCWSTR portname) message = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); if (message) { message[0] = '\0'; - snprintfW(message, len, res_PortExistsW, portname); + swprintf(message, res_PortExistsW, portname); MessageBoxW(hWnd, message, res_PortW, MB_OK | MB_ICONERROR); HeapFree(GetProcessHeap(), 0, message); } @@ -213,7 +215,7 @@ static void dlg_invalid_portname(HWND hWnd, LPCWSTR portname) message = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); if (message) { message[0] = '\0'; - snprintfW(message, len, res_InvalidNameW, portname); + swprintf(message, res_InvalidNameW, portname); MessageBoxW(hWnd, message, res_PortW, MB_OK | MB_ICONERROR); HeapFree(GetProcessHeap(), 0, message); } @@ -375,12 +377,12 @@ static INT_PTR CALLBACK dlgproc_lptconfig(HWND hwnd, UINT msg, WPARAM wparam, LP status = FALSE; res = GetDlgItemInt(hwnd, LPTCONFIG_EDIT, (BOOL *) &status, FALSE); /* length is in WCHAR, including the '\0' */ - GetDlgItemTextW(hwnd, LPTCONFIG_EDIT, bufferW, sizeof(bufferW) / sizeof(bufferW[0])); + GetDlgItemTextW(hwnd, LPTCONFIG_EDIT, bufferW, ARRAY_SIZE(bufferW)); TRACE("got %s and %u (translated: %u)\n", debugstr_w(bufferW), res, status); /* native localui.dll use the same limits */ if ((res > 0) && (res < 1000000) && status) { - sprintfW(bufferW, fmt_uW, res); + swprintf(bufferW, fmt_uW, res); res = XcvDataW( data->hXcv, cmd_ConfigureLPTPortCommandOKW, (PBYTE) bufferW, (lstrlenW(bufferW) +1) * sizeof(WCHAR), @@ -416,13 +418,13 @@ static DWORD get_type_from_name(LPCWSTR name) { HANDLE hfile; - if (!strncmpiW(name, portname_LPT, sizeof(portname_LPT) / sizeof(WCHAR) -1)) + if (!_wcsnicmp(name, portname_LPT, ARRAY_SIZE(portname_LPT) -1)) return PORT_IS_LPT; - if (!strncmpiW(name, portname_COM, sizeof(portname_COM) / sizeof(WCHAR) -1)) + if (!_wcsnicmp(name, portname_COM, ARRAY_SIZE(portname_COM) -1)) return PORT_IS_COM; - if (!strcmpiW(name, portname_FILE)) + if (!wcsicmp(name, portname_FILE)) return PORT_IS_FILE; if (name[0] == '/') @@ -431,10 +433,10 @@ static DWORD get_type_from_name(LPCWSTR name) if (name[0] == '|') return PORT_IS_PIPE; - if (!strncmpW(name, portname_CUPS, sizeof(portname_CUPS) / sizeof(WCHAR) -1)) + if (!wcsncmp(name, portname_CUPS, ARRAY_SIZE(portname_CUPS) -1)) return PORT_IS_CUPS; - if (!strncmpW(name, portname_LPR, sizeof(portname_LPR) / sizeof(WCHAR) -1)) + if (!wcsncmp(name, portname_LPR, ARRAY_SIZE(portname_LPR) -1)) return PORT_IS_LPR; /* Must be a file or a directory. Does the file exist ? */
5 years
1
0
0
0
[reactos] 01/01: [INETCPL] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=90cb67a7f41f9048b7e50…
commit 90cb67a7f41f9048b7e506edfea62191a56d98a8 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:57:10 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:57:10 2019 +0100 [INETCPL] Sync with Wine Staging 4.18. CORE-16441 --- dll/cpl/inetcpl/connections.c | 6 +++--- dll/cpl/inetcpl/inetcpl.c | 7 +++++++ media/doc/README.WINE | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/dll/cpl/inetcpl/connections.c b/dll/cpl/inetcpl/connections.c index 648cd3d0029..c24374fd2a5 100644 --- a/dll/cpl/inetcpl/connections.c +++ b/dll/cpl/inetcpl/connections.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Piotr cabna for CodeWeavers + * Copyright 2018 Piotr Caban for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,6 +20,7 @@ #include <stdarg.h> #include <windef.h> #include <winbase.h> +#include <winnls.h> #include <wininet.h> #include <winuser.h> #include <winreg.h> @@ -27,7 +28,6 @@ #include "inetcpl.h" #include "wine/debug.h" #include "wine/heap.h" -#include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(inetcpl); @@ -193,7 +193,7 @@ static void connections_on_initdialog(HWND hwnd) EnableWindow(GetDlgItem(hwnd, IDC_EDIT_PROXY_PORT), TRUE); } - port = strchrW(address, ':'); + port = wcschr(address, ':'); if(port) { *port = 0; diff --git a/dll/cpl/inetcpl/inetcpl.c b/dll/cpl/inetcpl/inetcpl.c index b4d5a14037a..41d66605d2d 100644 --- a/dll/cpl/inetcpl/inetcpl.c +++ b/dll/cpl/inetcpl/inetcpl.c @@ -77,17 +77,24 @@ HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline) */ static int CALLBACK propsheet_callback(HWND hwnd, UINT msg, LPARAM lparam) { +#ifdef __REACTOS__ // NOTE: This callback is needed to set large icon correctly. HICON hIcon; +#endif TRACE("(%p, 0x%08x/%d, 0x%lx)\n", hwnd, msg, msg, lparam); switch (msg) { case PSCB_INITIALIZED: +#ifdef __REACTOS__ { hIcon = LoadIconW(hcpl, MAKEINTRESOURCEW(ICO_MAIN)); SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon); break; } +#else + SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM) LoadIconW(hcpl, MAKEINTRESOURCEW(ICO_MAIN))); + break; +#endif } return 0; } diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 64ee6000989..277510e938b 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -222,7 +222,7 @@ dll/win32/xinput9_1_0 # Synced to WineStaging-2.9 dll/win32/xmllite # Synced to WineStaging-4.18 dll/win32/xolehlp # Synced to WineStaging-3.21 -dll/cpl/inetcpl # Synced to WineStaging-3.17 +dll/cpl/inetcpl # Synced to WineStaging-4.18 win32ss/printing/monitors/localmon/ui/ # Synced to WineStaging-3.3 (known there as /dll/win32/localui)
5 years
1
0
0
0
[reactos] 01/01: [XMLLITE_WINETEST] Sync with Wine Staging 4.18. CORE-16441
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4d74a058bd0862bd4b731…
commit 4d74a058bd0862bd4b731f536ae069a7bd12c9a7 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Mon Dec 23 00:56:47 2019 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Mon Dec 23 00:56:47 2019 +0100 [XMLLITE_WINETEST] Sync with Wine Staging 4.18. CORE-16441 --- modules/rostests/winetests/xmllite/writer.c | 839 ++++++++++++++++++++++++---- 1 file changed, 734 insertions(+), 105 deletions(-) diff --git a/modules/rostests/winetests/xmllite/writer.c b/modules/rostests/winetests/xmllite/writer.c index 8a15f384cb2..4e91419829d 100644 --- a/modules/rostests/winetests/xmllite/writer.c +++ b/modules/rostests/winetests/xmllite/writer.c @@ -31,6 +31,8 @@ #include "winbase.h" #include "ole2.h" #include "xmllite.h" + +#include "wine/heap.h" #include "wine/test.h" #include "initguid.h" @@ -52,16 +54,18 @@ static void check_output_raw(IStream *stream, const void *expected, SIZE_T size, SIZE_T content_size; HGLOBAL hglobal; HRESULT hr; - char *ptr; + WCHAR *ptr; hr = GetHGlobalFromStream(stream, &hglobal); ok_(__FILE__, line)(hr == S_OK, "Failed to get the stream handle, hr %#x.\n", hr); content_size = GlobalSize(hglobal); - ok_(__FILE__, line)(size <= content_size, "Unexpected test output size.\n"); + ok_(__FILE__, line)(size == content_size, "Unexpected test output size %ld.\n", content_size); ptr = GlobalLock(hglobal); if (size <= content_size) ok_(__FILE__, line)(!memcmp(expected, ptr, size), "Unexpected output content.\n"); + if (size != content_size && *ptr == 0xfeff) + ok_(__FILE__, line)(0, "Content: %s.\n", wine_dbgstr_wn(ptr, content_size / sizeof(WCHAR))); GlobalUnlock(hglobal); } @@ -94,6 +98,19 @@ static void check_output(IStream *stream, const char *expected, BOOL todo, int l #define CHECK_OUTPUT_TODO(stream, expected) check_output(stream, expected, TRUE, __LINE__) #define CHECK_OUTPUT_RAW(stream, expected, size) check_output_raw(stream, expected, size, __LINE__) +static WCHAR *strdupAtoW(const char *str) +{ + WCHAR *ret = NULL; + DWORD len; + + if (!str) return ret; + len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); + ret = heap_alloc(len * sizeof(WCHAR)); + if (ret) + MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len); + return ret; +} + static void writer_set_property(IXmlWriter *writer, XmlWriterProperty property) { HRESULT hr; @@ -125,7 +142,8 @@ static void check_writer_state(IXmlWriter *writer, HRESULT exp_hr) hr = IXmlWriter_WriteComment(writer, aW); ok(hr == exp_hr, "got 0x%08x, expected 0x%08x\n", hr, exp_hr); - /* FIXME: add WriteDocType */ + hr = IXmlWriter_WriteDocType(writer, aW, NULL, NULL, NULL); + ok(hr == exp_hr, "got 0x%08x, expected 0x%08x\n", hr, exp_hr); hr = IXmlWriter_WriteElementString(writer, NULL, aW, NULL, aW); ok(hr == exp_hr, "got 0x%08x, expected 0x%08x\n", hr, exp_hr); @@ -343,7 +361,8 @@ static void test_invalid_output_encoding(IXmlWriter *writer, IUnknown *output) hr = IXmlWriter_WriteComment(writer, aW); ok(hr == MX_E_ENCODING, "Unexpected hr %#x.\n", hr); - /* TODO: WriteDocType */ + hr = IXmlWriter_WriteDocType(writer, aW, NULL, NULL, NULL); + ok(hr == MX_E_ENCODING, "Unexpected hr %#x.\n", hr); hr = IXmlWriter_WriteElementString(writer, NULL, aW, NULL, NULL); ok(hr == MX_E_ENCODING, "Unexpected hr %#x.\n", hr); @@ -471,6 +490,7 @@ todo_wine CHECK_OUTPUT_RAW(stream, utf16_outputW, sizeof(utf16_outputW)); IStream_Release(stream); + IUnknown_Release(output); /* Create output with meaningless code page value. */ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); @@ -706,11 +726,14 @@ static void test_omitxmldeclaration(void) static void test_bom(void) { + static const WCHAR piW[] = {0xfeff,'<','?','x','m','l',' ','v','e','r','s','i','o','n','=','"','1','.','0','"','?','>'}; + static const WCHAR aopenW[] = {0xfeff,'<','a'}; + static const WCHAR afullW[] = {0xfeff,'<','a',' ','/','>'}; static const WCHAR versionW[] = {'v','e','r','s','i','o','n','=','"','1','.','0','"',0}; static const WCHAR utf16W[] = {'u','t','f','-','1','6',0}; static const WCHAR xmlW[] = {'x','m','l',0}; + static const WCHAR bomW[] = {0xfeff}; IXmlWriterOutput *output; - unsigned char *ptr; IXmlWriter *writer; IStream *stream; HGLOBAL hglobal; @@ -737,12 +760,7 @@ static void test_bom(void) hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = GetHGlobalFromStream(stream, &hglobal); - ok(hr == S_OK, "got 0x%08x\n", hr); - - ptr = GlobalLock(hglobal); - ok(ptr[0] == 0xff && ptr[1] == 0xfe, "got %x,%x\n", ptr[0], ptr[1]); - GlobalUnlock(hglobal); + CHECK_OUTPUT_RAW(stream, bomW, sizeof(bomW)); IStream_Release(stream); IUnknown_Release(output); @@ -763,12 +781,7 @@ static void test_bom(void) hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = GetHGlobalFromStream(stream, &hglobal); - ok(hr == S_OK, "got 0x%08x\n", hr); - - ptr = GlobalLock(hglobal); - ok(ptr[0] == 0xff && ptr[1] == 0xfe, "got %x,%x\n", ptr[0], ptr[1]); - GlobalUnlock(hglobal); + CHECK_OUTPUT_RAW(stream, piW, sizeof(piW)); IUnknown_Release(output); IStream_Release(stream); @@ -789,12 +802,7 @@ static void test_bom(void) hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = GetHGlobalFromStream(stream, &hglobal); - ok(hr == S_OK, "got 0x%08x\n", hr); - - ptr = GlobalLock(hglobal); - ok(ptr[0] == 0xff && ptr[1] == 0xfe, "got %x,%x\n", ptr[0], ptr[1]); - GlobalUnlock(hglobal); + CHECK_OUTPUT_RAW(stream, aopenW, sizeof(aopenW)); IUnknown_Release(output); IStream_Release(stream); @@ -820,10 +828,7 @@ static void test_bom(void) hr = GetHGlobalFromStream(stream, &hglobal); ok(hr == S_OK, "got 0x%08x\n", hr); - ptr = GlobalLock(hglobal); - ok(ptr[0] == 0xff && ptr[1] == 0xfe && ptr[2] == '<', "Unexpected output: %#x,%#x,%#x\n", - ptr[0], ptr[1], ptr[2]); - GlobalUnlock(hglobal); + CHECK_OUTPUT_RAW(stream, afullW, sizeof(afullW)); IUnknown_Release(output); IStream_Release(stream); @@ -831,33 +836,105 @@ static void test_bom(void) IXmlWriter_Release(writer); } -static void test_writestartelement(void) +static HRESULT write_start_element(IXmlWriter *writer, const char *prefix, const char *local, + const char *uri) +{ + WCHAR *prefixW, *localW, *uriW; + HRESULT hr; + + prefixW = strdupAtoW(prefix); + localW = strdupAtoW(local); + uriW = strdupAtoW(uri); + + hr = IXmlWriter_WriteStartElement(writer, prefixW, localW, uriW); + + heap_free(prefixW); + heap_free(localW); + heap_free(uriW); + + return hr; +} + +static HRESULT write_element_string(IXmlWriter *writer, const char *prefix, const char *local, + const char *uri, const char *value) { - static const WCHAR valueW[] = {'v','a','l','u','e',0}; + WCHAR *prefixW, *localW, *uriW, *valueW; + HRESULT hr; + + prefixW = strdupAtoW(prefix); + localW = strdupAtoW(local); + uriW = strdupAtoW(uri); + valueW = strdupAtoW(value); + + hr = IXmlWriter_WriteElementString(writer, prefixW, localW, uriW, valueW); + + heap_free(prefixW); + heap_free(localW); + heap_free(uriW); + heap_free(valueW); + + return hr; +} + +static HRESULT write_string(IXmlWriter *writer, const char *str) +{ + WCHAR *strW; + HRESULT hr; + + strW = strdupAtoW(str); + + hr = IXmlWriter_WriteString(writer, strW); + + heap_free(strW); + + return hr; +} + +static void test_WriteStartElement(void) +{ + static const struct + { + const char *prefix; + const char *local; + const char *uri; + const char *output; + const char *output_partial; + HRESULT hr; + int todo; + int todo_partial; + } + start_element_tests[] = + { + { "prefix", "local", "uri", "<prefix:local xmlns:prefix=\"uri\" />", "<prefix:local" }, + { NULL, "local", "uri", "<local xmlns=\"uri\" />", "<local" }, + { "", "local", "uri", "<local xmlns=\"uri\" />", "<local" }, + { "", "local", "uri", "<local xmlns=\"uri\" />", "<local" }, + + { "prefix", NULL, NULL, NULL, NULL, E_INVALIDARG }, + { NULL, NULL, "uri", NULL, NULL, E_INVALIDARG }, + { NULL, NULL, NULL, NULL, NULL, E_INVALIDARG }, + { NULL, "prefix:local", "uri", NULL, NULL, WC_E_NAMECHARACTER }, + { "pre:fix", "local", "uri", NULL, NULL, WC_E_NAMECHARACTER }, + { NULL, ":local", "uri", NULL, NULL, WC_E_NAMECHARACTER }, + { ":", "local", "uri", NULL, NULL, WC_E_NAMECHARACTER }, + { NULL, "local", "
http://www.w3.org/2000/xmlns/
", NULL, NULL, WR_E_XMLNSPREFIXDECLARATION }, + { "prefix", "local", "
http://www.w3.org/2000/xmlns/
", NULL, NULL, WR_E_XMLNSURIDECLARATION }, + }; static const WCHAR aW[] = {'a',0}; - static const WCHAR bW[] = {'b',0}; IXmlWriter *writer; IStream *stream; + unsigned int i; HRESULT hr; hr = CreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, NULL, "a", NULL); ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); stream = writer_set_output(writer); - hr = IXmlWriter_WriteStartElement(writer, aW, NULL, NULL); - ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteStartElement(writer, NULL, NULL, NULL); - ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteStartElement(writer, NULL, NULL, aW); - ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, NULL, "a", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); @@ -884,34 +961,222 @@ static void test_writestartelement(void) hr = CreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); - hr = IXmlWriter_WriteElementString(writer, NULL, bW, NULL, valueW); + hr = write_element_string(writer, NULL, "b", NULL, "value"); ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); stream = writer_set_output(writer); - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, "prefix", "a", "uri"); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_element_string(writer, NULL, "b", NULL, "value"); + ok(hr == S_OK, "Failed to write element string, hr %#x.\n", hr); + + hr = write_element_string(writer, NULL, "c", NULL, NULL); + ok(hr == S_OK, "Failed to write element string, hr %#x.\n", hr); + + hr = write_start_element(writer, NULL, "d", "uri"); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_start_element(writer, "", "e", "uri"); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_start_element(writer, "prefix2", "f", "uri"); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + + CHECK_OUTPUT(stream, + "<prefix:a xmlns:prefix=\"uri\">" + "<b>value</b>" + "<c />" + "<prefix:d>" + "<e xmlns=\"uri\">" + "<prefix2:f"); + + IStream_Release(stream); + + /* WriteStartElement */ + for (i = 0; i < ARRAY_SIZE(start_element_tests); ++i) + { + stream = writer_set_output(writer); + + writer_set_property(writer, XmlWriterProperty_OmitXmlDeclaration); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Omit); + ok(hr == S_OK, "Failed to start document, hr %#x.\n", hr); + + hr = write_start_element(writer, start_element_tests[i].prefix, start_element_tests[i].local, + start_element_tests[i].uri); + ok(hr == start_element_tests[i].hr, "%u: unexpected hr %#x.\n", i, hr); + + if (SUCCEEDED(start_element_tests[i].hr)) + { + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, start_element_tests[i].output_partial, start_element_tests[i].todo_partial, __LINE__); + + hr = IXmlWriter_WriteEndDocument(writer); + ok(hr == S_OK, "Failed to end document, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, start_element_tests[i].output, start_element_tests[i].todo, __LINE__); + } + + IStream_Release(stream); + } + + IXmlWriter_Release(writer); +} + +static void test_WriteElementString(void) +{ + static const struct + { + const char *prefix; + const char *local; + const char *uri; + const char *value; + const char *output; + HRESULT hr; + int todo; + } + element_string_tests[] = + { + { "prefix", "local", "uri", "value", "<prefix:local xmlns:prefix=\"uri\">value</prefix:local>" }, + { NULL, "local", "uri", "value", "<local xmlns=\"uri\">value</local>" }, + { "", "local", "uri", "value", "<local xmlns=\"uri\">value</local>" }, + { "prefix", "local", "uri", NULL, "<prefix:local xmlns:prefix=\"uri\" />" }, + { NULL, "local", "uri", NULL, "<local xmlns=\"uri\" />" }, + { "", "local", "uri", NULL, "<local xmlns=\"uri\" />" }, + { NULL, "local", NULL, NULL, "<local />" }, + { "prefix", "local", "uri", "", "<prefix:local xmlns:prefix=\"uri\"></prefix:local>" }, + { NULL, "local", "uri", "", "<local xmlns=\"uri\"></local>" }, + { "", "local", "uri", "", "<local xmlns=\"uri\"></local>" }, + { NULL, "local", NULL, "", "<local></local>" }, + { "", "local", "
http://www.w3.org/2000/xmlns/
", NULL, "<local xmlns=\"
http://www.w3.org/2000/xmlns/\
" />" }, + + { "prefix", NULL, NULL, "value", NULL, E_INVALIDARG }, + { NULL, NULL, "uri", "value", NULL, E_INVALIDARG }, + { NULL, NULL, NULL, "value", NULL, E_INVALIDARG }, + { NULL, "prefix:local", "uri", "value", NULL, WC_E_NAMECHARACTER }, + { NULL, ":local", "uri", "value", NULL, WC_E_NAMECHARACTER }, + { ":", "local", "uri", "value", NULL, WC_E_NAMECHARACTER }, + { "prefix", "local", NULL, "value", NULL, WR_E_NSPREFIXWITHEMPTYNSURI }, + { "prefix", "local", "", "value", NULL, WR_E_NSPREFIXWITHEMPTYNSURI }, + { NULL, "local", "
http://www.w3.org/2000/xmlns/
", "value", NULL, WR_E_XMLNSPREFIXDECLARATION }, + { "prefix", "local", "
http://www.w3.org/2000/xmlns/
", "value", NULL, WR_E_XMLNSURIDECLARATION }, + }; + IXmlWriter *writer; + IStream *stream; + unsigned int i; + HRESULT hr; + + hr = CreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + + hr = write_element_string(writer, NULL, "b", NULL, "value"); + ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); + + stream = writer_set_output(writer); + + hr = write_start_element(writer, NULL, "a", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteElementString(writer, NULL, bW, NULL, valueW); + hr = write_element_string(writer, NULL, "b", NULL, "value"); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteElementString(writer, NULL, bW, NULL, NULL); + hr = write_element_string(writer, NULL, "b", NULL, NULL); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = write_element_string(writer, "prefix", "b", "uri", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); + hr = write_start_element(writer, "prefix", "c", "uri"); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_element_string(writer, "prefix", "d", NULL, NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, "prefix2", "d", "uri", NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, NULL, "e", "uri", NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, "prefix", "f", "uri2", NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, NULL, "g", "uri3", NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, "prefix", "h", NULL, NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, "prefix_i", "i", NULL, NULL); + ok(hr == WR_E_NSPREFIXWITHEMPTYNSURI, "Failed to write element, hr %#x.\n", hr); + + hr = write_element_string(writer, "", "j", "uri", NULL); + ok(hr == S_OK, "Failed to write element, hr %#x.\n", hr); + hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); CHECK_OUTPUT(stream, - "<a><b>value</b><b />"); + "<a><b>value</b><b />" + "<prefix:b xmlns:prefix=\"uri\" />" + "<prefix:c xmlns:prefix=\"uri\">" + "<prefix:d />" + "<prefix2:d xmlns:prefix2=\"uri\" />" + "<prefix:e />" + "<prefix:f xmlns:prefix=\"uri2\" />" + "<g xmlns=\"uri3\" />" + "<prefix:h />" + "<j xmlns=\"uri\" />"); IStream_Release(stream); + + for (i = 0; i < ARRAY_SIZE(element_string_tests); ++i) + { + stream = writer_set_output(writer); + + writer_set_property(writer, XmlWriterProperty_OmitXmlDeclaration); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Omit); + ok(hr == S_OK, "Failed to start document, hr %#x.\n", hr); + + hr = write_element_string(writer, element_string_tests[i].prefix, element_string_tests[i].local, + element_string_tests[i].uri, element_string_tests[i].value); + ok(hr == element_string_tests[i].hr, "%u: unexpected hr %#x.\n", i, hr); + + if (SUCCEEDED(element_string_tests[i].hr)) + { + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, element_string_tests[i].output, element_string_tests[i].todo, __LINE__); + + hr = IXmlWriter_WriteEndDocument(writer); + ok(hr == S_OK, "Failed to end document, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, element_string_tests[i].output, element_string_tests[i].todo, __LINE__); + } + + IStream_Release(stream); + } + IXmlWriter_Release(writer); } -static void test_writeendelement(void) +static void test_WriteEndElement(void) { - static const WCHAR aW[] = {'a',0}; - static const WCHAR bW[] = {'b',0}; IXmlWriter *writer; IStream *stream; HRESULT hr; @@ -921,10 +1186,10 @@ static void test_writeendelement(void) stream = writer_set_output(writer); - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, NULL, "a", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteStartElement(writer, NULL, bW, NULL); + hr = write_start_element(writer, NULL, "b", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_WriteEndElement(writer); @@ -1316,88 +1581,216 @@ static void test_indentation(void) IXmlWriter_Release(writer); } +static HRESULT write_attribute_string(IXmlWriter *writer, const char *prefix, const char *local, + const char *uri, const char *value) +{ + WCHAR *prefixW, *localW, *uriW, *valueW; + HRESULT hr; + + prefixW = strdupAtoW(prefix); + localW = strdupAtoW(local); + uriW = strdupAtoW(uri); + valueW = strdupAtoW(value); + + hr = IXmlWriter_WriteAttributeString(writer, prefixW, localW, uriW, valueW); + + heap_free(prefixW); + heap_free(localW); + heap_free(uriW); + heap_free(valueW); + + return hr; +} + static void test_WriteAttributeString(void) { - static const WCHAR prefixW[] = {'p','r','e','f','i','x',0}; - static const WCHAR localW[] = {'l','o','c','a','l',0}; - static const WCHAR uriW[] = {'u','r','i',0}; - static const WCHAR uri2W[] = {'u','r','i','2',0}; - static const WCHAR xmlnsW[] = {'x','m','l','n','s',0}; - static const WCHAR aW[] = {'a',0}; - static const WCHAR bW[] = {'b',0}; + static const struct + { + const char *prefix; + const char *local; + const char *uri; + const char *value; + const char *output; + const char *output_partial; + HRESULT hr; + int todo; + int todo_partial; + int todo_hr; + } + attribute_tests[] = + { + { NULL, "a", NULL, "b", "<e a=\"b\" />", "<e a=\"b\"" }, + { "", "a", NULL, "b", "<e a=\"b\" />", "<e a=\"b\"" }, + { NULL, "a", "", "b", "<e a=\"b\" />", "<e a=\"b\"" }, + { "", "a", "", "b", "<e a=\"b\" />", "<e a=\"b\"" }, + { "prefix", "local", "uri", "b", "<e prefix:local=\"b\" xmlns:prefix=\"uri\" />", "<e prefix:local=\"b\"" }, + { NULL, "a", "
http://www.w3.org/2000/xmlns/
", "defuri", "<e xmlns:a=\"defuri\" />", "<e xmlns:a=\"defuri\"" }, + { "xmlns", "a", NULL, "uri", "<e xmlns:a=\"uri\" />", "<e xmlns:a=\"uri\"" }, + { "xmlns", "a", "", "uri", "<e xmlns:a=\"uri\" />", "<e xmlns:a=\"uri\"" }, + { "prefix", "xmlns", "uri", "value", "<e prefix:xmlns=\"value\" xmlns:prefix=\"uri\" />", "<e prefix:xmlns=\"value\"" }, + { "prefix", "xmlns", "uri", NULL, "<e prefix:xmlns=\"\" xmlns:prefix=\"uri\" />", "<e prefix:xmlns=\"\"" }, + { "prefix", "xmlns", "uri", "", "<e prefix:xmlns=\"\" xmlns:prefix=\"uri\" />", "<e prefix:xmlns=\"\"" }, + { "prefix", "xmlns", NULL, "uri", "<e xmlns=\"uri\" />", "<e xmlns=\"uri\"" }, + { "prefix", "xmlns", "", "uri", "<e xmlns=\"uri\" />", "<e xmlns=\"uri\"" }, + { "xml", "space", NULL, "preserve", "<e xml:space=\"preserve\" />", "<e xml:space=\"preserve\"" }, + { "xml", "space", "", "preserve", "<e xml:space=\"preserve\" />", "<e xml:space=\"preserve\"" }, + { "xml", "space", NULL, "default", "<e xml:space=\"default\" />", "<e xml:space=\"default\"" }, + { "xml", "space", "", "default", "<e xml:space=\"default\" />", "<e xml:space=\"default\"" }, + { "xml", "a", NULL, "value", "<e xml:a=\"value\" />", "<e xml:a=\"value\"" }, + { "xml", "a", "", "value", "<e xml:a=\"value\" />", "<e xml:a=\"value\"" }, + + /* Autogenerated prefix names. */ + { NULL, "a", "defuri", NULL, "<e p1:a=\"\" xmlns:p1=\"defuri\" />", "<e p1:a=\"\"", S_OK, 1, 1, 1 }, + { NULL, "a", "defuri", "b", "<e p1:a=\"b\" xmlns:p1=\"defuri\" />", "<e p1:a=\"b\"", S_OK, 1, 1, 1 }, + { "", "a", "defuri", NULL, "<e p1:a=\"\" xmlns:p1=\"defuri\" />", "<e p1:a=\"\"", S_OK, 1, 1, 1 }, + { NULL, "a", "defuri", "", "<e p1:a=\"\" xmlns:p1=\"defuri\" />", "<e p1:a=\"\"", S_OK, 1, 1, 1 }, + { "", "a", "defuri", "b", "<e p1:a=\"b\" xmlns:p1=\"defuri\" />", "<e p1:a=\"b\"", S_OK, 1, 1, 1 }, + + /* Failing cases. */ + { NULL, NULL, "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", E_INVALIDARG }, + { "", "a", "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", WR_E_XMLNSPREFIXDECLARATION, 1, 1, 1 }, + { "", NULL, "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", E_INVALIDARG }, + { "", "", "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", E_INVALIDARG, 1, 1, 1 }, + { NULL, "", "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", E_INVALIDARG, 1, 1, 1 }, + { "prefix", "a", "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", WR_E_XMLNSURIDECLARATION, 1, 1, 1 }, + { "prefix", NULL, "
http://www.w3.org/2000/xmlns/
", "defuri", "<e />", "<e", E_INVALIDARG }, + { "prefix", NULL, NULL, "b", "<e />", "<e", E_INVALIDARG }, + { "prefix", NULL, "uri", NULL, "<e />", "<e", E_INVALIDARG }, + { "xml", NULL, NULL, "value", "<e />", "<e", E_INVALIDARG }, + { "xmlns", "a", "defuri", NULL, "<e />", "<e", WR_E_XMLNSPREFIXDECLARATION }, + { "xmlns", "a", "b", "uri", "<e />", "<e", WR_E_XMLNSPREFIXDECLARATION }, + { NULL, "xmlns", "uri", NULL, "<e />", "<e", WR_E_XMLNSPREFIXDECLARATION, 0, 0, 1 }, + { "xmlns", NULL, "uri", NULL, "<e />", "<e", WR_E_XMLNSPREFIXDECLARATION, 0, 0, 1 }, + { "pre:fix", "local", "uri", "b", "<e />", "<e", WC_E_NAMECHARACTER }, + { "pre:fix", NULL, "uri", "b", "<e />", "<e", E_INVALIDARG }, + { "prefix", "lo:cal", "uri", "b", "<e />", "<e", WC_E_NAMECHARACTER }, + { "xmlns", NULL, NULL, "uri", "<e />", "<e", WR_E_NSPREFIXDECLARED }, + { "xmlns", NULL, "", "uri", "<e />", "<e", WR_E_NSPREFIXDECLARED }, + { "xmlns", "", NULL, "uri", "<e />", "<e", WR_E_NSPREFIXDECLARED }, + { "xmlns", "", "", "uri", "<e />", "<e", WR_E_NSPREFIXDECLARED }, + { "xml", "space", "", "value", "<e />", "<e", WR_E_INVALIDXMLSPACE }, + { "xml", "space", NULL, "value", "<e />", "<e", WR_E_INVALIDXMLSPACE }, + { "xml", "a", "uri", "value", "<e />", "<e", WR_E_XMLPREFIXDECLARATION }, + { "xml", "space", NULL, "preServe", "<e />", "<e", WR_E_INVALIDXMLSPACE }, + { "xml", "space", NULL, "defAult", "<e />", "<e", WR_E_INVALIDXMLSPACE }, + { "xml", "space", NULL, NULL, "<e />", "<e", WR_E_INVALIDXMLSPACE }, + { "xml", "space", NULL, "", "<e />", "<e", WR_E_INVALIDXMLSPACE }, + }; + IXmlWriter *writer; IStream *stream; + unsigned int i; HRESULT hr; hr = CreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); - stream = writer_set_output(writer); - writer_set_property(writer, XmlWriterProperty_OmitXmlDeclaration); + for (i = 0; i < ARRAY_SIZE(attribute_tests); ++i) + { + stream = writer_set_output(writer); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Omit); + ok(hr == S_OK, "Failed to start document, hr %#x.\n", hr); + + hr = write_start_element(writer, NULL, "e", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_attribute_string(writer, attribute_tests[i].prefix, attribute_tests[i].local, + attribute_tests[i].uri, attribute_tests[i].value); + todo_wine_if(attribute_tests[i].todo_hr) + ok(hr == attribute_tests[i].hr, "%u: unexpected hr %#x, expected %#x.\n", i, hr, attribute_tests[i].hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, attribute_tests[i].output_partial, attribute_tests[i].todo_partial, __LINE__); + + hr = IXmlWriter_WriteEndDocument(writer); + ok(hr == S_OK, "Failed to end document, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + check_output(stream, attribute_tests[i].output, attribute_tests[i].todo, __LINE__); + IStream_Release(stream); + } + + /* With namespaces */ + stream = writer_set_output(writer); + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Omit); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, "p", "a", "outeruri"); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = write_attribute_string(writer, "prefix", "local", "uri", "b"); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = write_attribute_string(writer, NULL, "a", NULL, "b"); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteAttributeString(writer, NULL, aW, NULL, bW); + hr = write_attribute_string(writer, "xmlns", "prefix", NULL, "uri"); ok(hr == S_OK, "got 0x%08x\n", hr); + hr = write_attribute_string(writer, "p", "attr", NULL, "value"); + ok(hr == S_OK, "Failed to write attribute string, hr %#x.\n", hr); + + hr = write_attribute_string(writer, "prefix", "local", NULL, "b"); +todo_wine + ok(hr == WR_E_DUPLICATEATTRIBUTE, "got 0x%08x\n", hr); + + hr = write_start_element(writer, NULL, "b", NULL); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = write_attribute_string(writer, NULL, "attr2", "outeruri", "value"); + ok(hr == S_OK, "Failed to write attribute string, hr %#x.\n", hr); + + hr = write_attribute_string(writer, "pr", "attr3", "outeruri", "value"); + ok(hr == S_OK, "Failed to write attribute string, hr %#x.\n", hr); + hr = IXmlWriter_WriteEndDocument(writer); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); - CHECK_OUTPUT(stream, - "<a a=\"b\" />"); + CHECK_OUTPUT_TODO(stream, + "<p:a prefix:local=\"b\" a=\"b\" xmlns:prefix=\"uri\" p:attr=\"value\" xmlns:p=\"outeruri\">" + "<b p:attr2=\"value\" pr:attr3=\"value\" xmlns:pr=\"outeruri\" />" + "</p:a>"); + IStream_Release(stream); - /* with namespaces */ + /* Define prefix, write attribute with it. */ stream = writer_set_output(writer); hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Omit); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteStartElement(writer, NULL, aW, NULL); + hr = write_start_element(writer, NULL, "e", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteAttributeString(writer, aW, NULL, NULL, bW); -todo_wine - ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteAttributeString(writer, prefixW, localW, uriW, bW); -todo_wine + hr = write_attribute_string(writer, "xmlns", "prefix", NULL, "uri"); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteAttributeString(writer, NULL, aW, NULL, bW); + hr = write_attribute_string(writer, "prefix", "attr", NULL, "value"); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteAttributeString(writer, NULL, xmlnsW, uri2W, NULL); -todo_wine - ok(hr == WR_E_XMLNSPREFIXDECLARATION, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteAttributeString(writer, NULL, xmlnsW, NULL, uri2W); -todo_wine - ok(hr == WR_E_NSPREFIXDECLARED, "got 0x%08x\n", hr); - - hr = IXmlWriter_WriteAttributeString(writer, prefixW, localW, NULL, bW); -todo_wine - ok(hr == WR_E_DUPLICATEATTRIBUTE, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteEndDocument(writer); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_Flush(writer); ok(hr == S_OK, "got 0x%08x\n", hr); - CHECK_OUTPUT_TODO(stream, - "<a prefix:local=\"b\" a=\"b\" xmlns:prefix=\"uri\" />"); + CHECK_OUTPUT(stream, + "<e xmlns:prefix=\"uri\" prefix:attr=\"value\" />"); - IXmlWriter_Release(writer); IStream_Release(stream); + + IXmlWriter_Release(writer); } static void test_WriteFullEndElement(void) @@ -1510,10 +1903,6 @@ static void test_WriteCharEntity(void) static void test_WriteString(void) { - static const WCHAR markupW[] = {'<','&','"','>','=',0}; - static const WCHAR aW[] = {'a',0}; - static const WCHAR bW[] = {'b',0}; - static const WCHAR emptyW[] = {0}; IXmlWriter *writer; IStream *stream; HRESULT hr; @@ -1523,31 +1912,31 @@ static void test_WriteString(void) writer_set_property(writer, XmlWriterProperty_OmitXmlDeclaration); - hr = IXmlWriter_WriteString(writer, aW); + hr = write_string(writer, "a"); ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, NULL); + hr = write_string(writer, NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, emptyW); + hr = write_string(writer, ""); ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); stream = writer_set_output(writer); - hr = IXmlWriter_WriteStartElement(writer, NULL, bW, NULL); + hr = write_start_element(writer, NULL, "b", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, NULL); + hr = write_string(writer, NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, emptyW); + hr = write_string(writer, ""); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, aW); + hr = write_string(writer, "a"); ok(hr == S_OK, "got 0x%08x\n", hr); /* WriteString automatically escapes markup characters */ - hr = IXmlWriter_WriteString(writer, markupW); + hr = write_string(writer, "<&\">="); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_Flush(writer); @@ -1559,10 +1948,10 @@ static void test_WriteString(void) stream = writer_set_output(writer); - hr = IXmlWriter_WriteStartElement(writer, NULL, bW, NULL); + hr = write_start_element(writer, NULL, "b", NULL); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IXmlWriter_WriteString(writer, NULL); + hr = write_string(writer, NULL); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_Flush(writer); @@ -1571,7 +1960,7 @@ static void test_WriteString(void) CHECK_OUTPUT(stream, "<b"); - hr = IXmlWriter_WriteString(writer, emptyW); + hr = write_string(writer, ""); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IXmlWriter_Flush(writer); @@ -1580,18 +1969,257 @@ static void test_WriteString(void) CHECK_OUTPUT(stream, "<b>"); + IStream_Release(stream); + IXmlWriter_Release(writer); + + /* With indentation */ + hr = CreateXmlWriter(&IID_IXmlWriter, (void **)&writer, NULL); + ok(hr == S_OK, "Failed to create a writer, hr %#x.\n", hr); + + stream = writer_set_output(writer); + + writer_set_property(writer, XmlWriterProperty_Indent); + + hr = write_start_element(writer, NULL, "a", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_start_element(writer, NULL, "b", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_string(writer, "text"); + ok(hr == S_OK, "Failed to write a string, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b>text"); + + hr = IXmlWriter_WriteFullEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b>text</b>"); + + hr = IXmlWriter_WriteFullEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b>text</b>\r\n" + "</a>"); + + IStream_Release(stream); + + stream = writer_set_output(writer); + + hr = write_start_element(writer, NULL, "a", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_start_element(writer, NULL, "b", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = IXmlWriter_WriteEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />"); + + hr = write_start_element(writer, NULL, "c", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_attribute_string(writer, NULL, "attr", NULL, "value"); + ok(hr == S_OK, "Failed to write attribute string, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />\r\n" + " <c attr=\"value\""); + + hr = write_string(writer, "text"); + ok(hr == S_OK, "Failed to write a string, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />\r\n" + " <c attr=\"value\">text"); + + hr = IXmlWriter_WriteEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />\r\n" + " <c attr=\"value\">text</c>"); + + hr = write_start_element(writer, NULL, "d", NULL); + ok(hr == S_OK, "Failed to start element, hr %#x.\n", hr); + + hr = write_string(writer, ""); + ok(hr == S_OK, "Failed to write a string, hr %#x.\n", hr); + + hr = IXmlWriter_WriteEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />\r\n" + " <c attr=\"value\">text</c>\r\n" + " <d></d>"); + + hr = IXmlWriter_WriteEndElement(writer); + ok(hr == S_OK, "Failed to end element, hr %#x.\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, + "<a>\r\n" + " <b />\r\n" + " <c attr=\"value\">text</c>\r\n" + " <d></d>\r\n" + "</a>"); + IXmlWriter_Release(writer); IStream_Release(stream); } +static HRESULT write_doctype(IXmlWriter *writer, const char *name, const char *pubid, const char *sysid, + const char *subset) +{ + WCHAR *nameW, *pubidW, *sysidW, *subsetW; + HRESULT hr; + + nameW = strdupAtoW(name); + pubidW = strdupAtoW(pubid); + sysidW = strdupAtoW(sysid); + subsetW = strdupAtoW(subset); + + hr = IXmlWriter_WriteDocType(writer, nameW, pubidW, sysidW, subsetW); + + heap_free(nameW); + heap_free(pubidW); + heap_free(sysidW); + heap_free(subsetW); + + return hr; +} + +static void test_WriteDocType(void) +{ + static const struct + { + const char *name; + const char *pubid; + const char *sysid; + const char *subset; + const char *output; + } + doctype_tests[] = + { + { "a", "", NULL, NULL, "<!DOCTYPE a PUBLIC \"\" \"\">" }, + { "a", NULL, NULL, NULL, "<!DOCTYPE a>" }, + { "a", NULL, "", NULL, "<!DOCTYPE a SYSTEM \"\">" }, + { "a", "", "", NULL, "<!DOCTYPE a PUBLIC \"\" \"\">" }, + { "a", "pubid", "", NULL, "<!DOCTYPE a PUBLIC \"pubid\" \"\">" }, + { "a", "pubid", NULL, NULL, "<!DOCTYPE a PUBLIC \"pubid\" \"\">" }, + { "a", "", "sysid", NULL, "<!DOCTYPE a PUBLIC \"\" \"sysid\">" }, + { "a", NULL, NULL, "", "<!DOCTYPE a []>" }, + { "a", NULL, NULL, "subset", "<!DOCTYPE a [subset]>" }, + { "a", "", NULL, "subset", "<!DOCTYPE a PUBLIC \"\" \"\" [subset]>" }, + { "a", NULL, "", "subset", "<!DOCTYPE a SYSTEM \"\" [subset]>" }, + { "a", "", "", "subset", "<!DOCTYPE a PUBLIC \"\" \"\" [subset]>" }, + { "a", "pubid", NULL, "subset", "<!DOCTYPE a PUBLIC \"pubid\" \"\" [subset]>" }, + { "a", "pubid", "", "subset", "<!DOCTYPE a PUBLIC \"pubid\" \"\" [subset]>" }, + { "a", NULL, "sysid", "subset", "<!DOCTYPE a SYSTEM \"sysid\" [subset]>" }, + { "a", "", "sysid", "subset", "<!DOCTYPE a PUBLIC \"\" \"sysid\" [subset]>" }, + { "a", "pubid", "sysid", "subset", "<!DOCTYPE a PUBLIC \"pubid\" \"sysid\" [subset]>" }, + }; + static const WCHAR pubidW[] = {'p',0x100,'i','d',0}; + static const WCHAR nameW[] = {'-','a',0}; + static const WCHAR emptyW[] = { 0 }; + IXmlWriter *writer; + IStream *stream; + unsigned int i; + HRESULT hr; + + hr = CreateXmlWriter(&IID_IXmlWriter, (void **)&writer, NULL); + ok(hr == S_OK, "Failed to create writer instance, hr %#x.\n", hr); + + stream = writer_set_output(writer); + + hr = IXmlWriter_WriteDocType(writer, NULL, NULL, NULL, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr); + + hr = IXmlWriter_WriteDocType(writer, emptyW, NULL, NULL, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr); + + /* Name validation. */ + hr = IXmlWriter_WriteDocType(writer, nameW, NULL, NULL, NULL); + ok(hr == WC_E_NAMECHARACTER, "Unexpected hr %#x.\n", hr); + + /* Pubid validation. */ + hr = IXmlWriter_WriteDocType(writer, aW, pubidW, NULL, NULL); + ok(hr == WC_E_PUBLICID, "Unexpected hr %#x.\n", hr); + + IStream_Release(stream); + + for (i = 0; i < ARRAY_SIZE(doctype_tests); i++) + { + stream = writer_set_output(writer); + + hr = write_doctype(writer, doctype_tests[i].name, doctype_tests[i].pubid, doctype_tests[i].sysid, + doctype_tests[i].subset); + ok(hr == S_OK, "%u: failed to write doctype, hr %#x.\n", i, hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "Failed to flush, hr %#x.\n", hr); + + CHECK_OUTPUT(stream, doctype_tests[i].output); + + hr = write_doctype(writer, doctype_tests[i].name, doctype_tests[i].pubid, doctype_tests[i].sysid, + doctype_tests[i].subset); + ok(hr == WR_E_INVALIDACTION, "Unexpected hr %#x.\n", hr); + + IStream_Release(stream); + } + + IXmlWriter_Release(writer); +} + START_TEST(writer) { test_writer_create(); test_writer_state(); test_writeroutput(); test_writestartdocument(); - test_writestartelement(); - test_writeendelement(); + test_WriteStartElement(); + test_WriteElementString(); + test_WriteEndElement(); test_flush(); test_omitxmldeclaration(); test_bom(); @@ -1604,4 +2232,5 @@ START_TEST(writer) test_WriteFullEndElement(); test_WriteCharEntity(); test_WriteString(); + test_WriteDocType(); }
5 years
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
23
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Results per page:
10
25
50
100
200